Quelle conception d'API est la plus scalable ?
GET /api/v1/products/electronics ou GET /api/v1/products?category=electronics ?
Cette question ne relève pas d'une préférence esthétique. Elle repose sur un principe de conception précis, et le comprendre influence directement la robustesse d'une architecture API.
La bonne pratique en conception REST veut que les paramètres de chemin identifient une ressource précise, tandis que les paramètres de requête servent à filtrer ou trier ces ressources.
Concrètement, une catégorie telle que "electronics" ne constitue pas une ressource en soi. Il s'agit d'un attribut permettant de filtrer une collection de produits, sans existence indépendante, contrairement à un produit identifié par son identifiant unique.
C'est pour cette raison que la seconde approche s'impose dans la majorité des cas.
Le principe de base :
↳ Les paramètres optionnels vont dans la query string
