Introducció
Les APIs RESTful continuen essent una peça clau en l’arquitectura d’aplicacions modernes. En aquest article es detallen les pràctiques per dissenyar, implementar i mantenir APIs robustes, segures i escalables el 2025.
Fonaments d’un bon disseny d’API
Una API ben dissenyada ha de ser:
- Intuïtiva: Els endpoints i paràmetres han de ser clars i autodescriptius.
- Consistent: Utilitza patrons coherents en nomenclatura, estructures d’URLs, formats de resposta i maneig d’errors.
- Robusta: Ha de gestionar casos extrems i errors de forma elegant, oferint informació útil per a la resolució de problemes.
- Evolutiva: Dissenya pensant en ampliacions futures sense trencar la compatibilitat amb els clients existents.
Nota: Tot i que GraphQL està en creixement, REST segueix essent la opció preferida per la simplicitat i la compatibilitat amb el cache HTTP.
Disseny orientat a recursos
El nucli d’una API RESTful és el concepte de “recurs”. Defineix els recursos com a substantius en plural i evita verbs a les URLs.
Exemples: - Bé: GET /users
- Malament: GET /getUsers
Jerarquia de recursos
Organitza els recursos de manera jeràrquica per representar relacions: - GET /users
→ tots els usuaris. - GET /users/123
→ un usuari concret. - GET /users/123/orders
→ comandes d’un usuari.
Per URLs molt profundes, considera utilitzar paràmetres de consulta.
Ús correcte dels mètodes HTTP
- GET: Recupera informació sense modificar el recurs.
Ex.: GET /users
- POST: Crea un nou recurs.
Ex.: POST /users
- PUT: Actualitza completament un recurs o el crea si no existeix.
Ex.: PUT /users/123
- PATCH: Actualitza parcialment un recurs.
Ex.: PATCH /users/123
- DELETE: Elimina un recurs.
Ex.: DELETE /users/123
Estructuració de respostes
Les respostes han de ser: - Exitoses: Inclouen un objecte data
amb la informació i metadades com el request_id
. - D’error: Inclouen un objecte errors
amb el codi, títol i detall de l’error.
Autenticació i autorització
Implementa sistemes segurs per controlar l’accés: - JWT: Permet autenticació sense estat. - OAuth 2.0: Ideal per a integracions amb tercers. - RBAC/PBAC: Controlen els accessos segons rols i permisos.
Cita: “La seguretat de l’API és fonamental per protegir les dades i garantir un accés autoritzat.”
Documentació d’APIs
Utilitza estàndards com OpenAPI per a una documentació clara i actualitzada, amb exemples, descripcions de paràmetres i respostes.
Estratègies de versionat
El versionat permet evolucionar la API sense afectar els clients: - A la URL: https://api.example.com/v1/users
- Amb capçaleres o paràmetres: Més discret però menys visible.
Assegura’t de comunicar els canvis “breaking” i proporcionar rutes de migració.
Control de trànsit i Rate Limiting
Protegeix la teva API limitant el nombre de peticions per interval de temps. Quan s’excedeix el límit, retorna el codi d’estat 429 Too Many Requests i informa el client del temps de reintentar.
Errors comuns i com evitar-los
- Verbs a les URLs: No utilitzis
/getUsers
; prefereix/users
. - Inconsistència en respostes: Mantingues un format uniforme.
- Còdics d’estat incorrectes: Utilitza 400, 401, 404, etc., segons el cas.
- No versionar l’API: Defineix una estratègia de versionat.
- Exposar detalls d’implementació: Abstrau la lògica interna.
- Ignorar HATEOAS i CORS: Inclou enllaços i configura correctament l’accés.
Conclusions
Un bon disseny d’APIs RESTful requereix atenció als detalls, claredat i seguretat. Seguint aquestes pràctiques, pots crear una API intuïtiva, robusta i fàcil de mantenir que s’adapti tant a necessitats actuals com futures.
Contacta amb el nostre equip si necessites suport en el desenvolupament d’APIs.