GraphQL vs REST
GraphQL est une alternative a REST qui offre plus de flexibilite dans les requetes.
Differences cles
| REST | GraphQL |
|---|---|
| Multiple endpoints | Un seul endpoint |
| Over/under fetching | Donnees exactes |
| Versioning API | Schema evolutif |
Schema GraphQL
type User {
id: ID!
name: String!
email: String!
posts: [Post!]!
}
type Query {
user(id: ID!): User
users: [User!]!
}
Requete GraphQL
query {
user(id: "1") {
name
email
posts {
title
}
}
}
Mutation
mutation {
createUser(input: {
name: "Jean"
email: "jean@exemple.com"
}) {
id
name
}
}
Quand choisir GraphQL ?
- Applications avec besoins de donnees varies
- Applications mobiles (economie de bande passante)
- APIs avec relations complexes
Quand rester sur REST ?
- APIs simples et CRUD basique
- Cache HTTP natif important
- Equipe non familiere avec GraphQL