Ich erstelle einen Warenkorb in meinem Frontend und möchte alle Artikel im Warenkorb als Array an meine Mutation addLicense in meinem Backend übergeben, damit ich nicht mehrere API-Aufrufe durchführen muss. Ist das möglich? Wenn ja, wie oder welche Möglichkeiten habe ich?
Ich habe versucht, die Argumente wie folgt in eckige Klammern zu setzen
extend type Mutation {
addLicense([
licenseType: String!
licenseAmount: String!
isActive: Boolean
expirationDate: Date!
]): License!
}
Ich habe auch versucht, den Objekttyp als Argument festzulegen
extend type Mutation {
addLicense(
license: [License]
): License!
Beim ersten Versuch wird dieser Fehler ausgegeben
/app/node_modules/graphql/language/parser.js:1463
throw (0, _error.syntaxError)(lexer.source, token.start, "Expected ".concat(kind, ", found ").concat((0, _lexer.getTokenDesc)(token)));
^
GraphQLError: Syntax Error: Expected Name, found [
at syntaxError
(/app/node_modules/graphql/error/syntaxError.js:24:10)
Der andere Versuch wirft diesen Fehler
Error: The type of Mutation.addLicense(license:) must be Input Type but got: [License].
Ich habe einige Ratschläge bei GraphQL Slack bekommen. Ich habe es gelöst, indem ich einen neuen Eingabetyp hinzugefügt habe.
input LicenseInput {
id: ID
licenseType: String!
licenseAmount: String!
isActive: Boolean
expirationDate: Date
course: String!
organizationID: String!
price: Int!
}
Ich konnte dann meine Mutation so hinzufügen
extend type Mutation {
addLicense(
license: [LicenseInput] <-
): License!
}
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen