Aller au contenu principal

REST et APIs

#REST et APIs

Conception d’APIs, ressources, verbes, idempotence, pagination; alternatives (GraphQL, gRPC).

#Principes REST

  • Ressources adressables par URL (/users/42).
  • Représentations (application/json), sans état (stateless).
  • Verbes HTTP: GET (lecture), POST (création), PUT/PATCH (mise à jour), DELETE (suppression).

#Bonnes pratiques

  • Pluriels cohérents (/users, /posts/123/comments).
  • Filtres/pagination: ?limit=20&offset=40 ou ?page=3&pageSize=20.
  • Idempotence: GET/PUT/DELETE idempotents; POST non idempotent.
  • Codes HTTP précis (201 création, 204 sans contenu, 400/404/409, 429 rate‑limit).

#Exemples

bg-[rgba(var(--code-inline-bg),0.5)] text-[rgb(var(--fg))] px-1 roundedbg-[rgba(var(--code-inline-bg),0.5)] text-[rgb(var(--fg))] px-1 rounded
1GET /api/users?search=ana2200 OK3{"items":[{"id":1,"name":"Ana"}],"total":1}4 5POST /api/users6{"name":"Ada"}7201 Created8Location: /api/users/2

#Alternatives

  • GraphQL: schéma typé, requêtes flexibles; attention au caching et à la complexité.
  • gRPC: proto + HTTP/2, efficaces pour services internes.