Una dintre cele mai frecvente capcane în GraphQL este returnarea erorilor de logică a afacerii (ex: „Card de credit expirat” sau „Parolă incorectă”) în câmpul de nivel superior errors. Comunitatea de arhitectură GraphQL recomandă Erorile ca Date (Errors as Data) folosind tipuri compuse Union.
Definirea mutației cu răspuns de tip Union în GraphQL SDL
# 1. Definim tipurile concrete de erori posibile:
type ParolaGresita {
mesaj: String!
incercariRamase: Int!
}
type ContBlocat {
mesaj: String!
expiraLa: String!
}
type Utilizator {
id: ID!
email: String!
tokenJWT: String!
}
# 2. Definim tipul union care cuprinde atât succesul, cât și erorile de business:
union AutentificareRezultat = Utilizator | ParolaGresita | ContBlocat
type Mutation {
login(email: String!, parola: String!): AutentificareRezultat!
}
Interogarea clientului cu verificarea exhaustivă a tipului (Type Discriminator)
mutation AutentificareUtilizator($email: String!, $pass: String!) {
login(email: $email, parola: $pass) {
__typename
... on Utilizator {
id
tokenJWT
}
... on ParolaGresita {
mesaj
incercariRamase
}
... on ContBlocat {
mesaj
expiraLa
}
}
}
Întrebări & Exemple de Cod:
Tratarea Erorilor de Business în GraphQL: Erori ca Tipuri de Date UnionAi o nelămurire despre utilizarea comenzii
Tratarea Erorilor de Business în GraphQL: Erori ca Tipuri de Date Unionsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.