Une API REST peut avoir des arguments à plusieurs endroits:
/api/resource?p1=v1&p2=v2
/api/resource/v1/v2
Quelles sont les meilleures pratiques et considérations à prendre en compte pour choisir entre 1 et 2 ci-dessus?
2 vs 3 est couvert ici .
Quelles sont les meilleures pratiques et considérations de choisir entre 1 et 2 ci-dessus?
Habituellement, le corps du contenu est utilisé pour les données à télécharger/à partir du serveur et les paramètres de requête permettent de spécifier les données exactes demandées. Par exemple, lorsque vous téléchargez un fichier, vous spécifiez le nom, le type MIME, etc. dans le corps, mais lorsque vous extrayez une liste de fichiers, vous pouvez utiliser les paramètres de requête pour filtrer la liste en fonction de la propriété des fichiers. En général, les paramètres de requête sont la propriété de la requête et non les données.
Bien sûr, ce n’est pas une règle stricte: vous pouvez l’appliquer de la manière qui vous semble la plus appropriée/qui fonctionne pour vous.
Vous pouvez également vouloir vérifier le article de Wikipédia sur la chaîne de requête , en particulier les deux premiers paragraphes.
Je suppose que vous parlez de requêtes POST/PUT. Sémantiquement, le corps de la demande doit contenir les données que vous publiez ou corrigez.
La chaîne de requête, dans le cadre de l'URL (un URI), sert à identifier la ressource que vous publiez ou corrigez.
Vous avez demandé les meilleures pratiques, la sémantique suivante est la mienne. Bien sûr, l'utilisation de vos règles empiriques devrait fonctionner, spécialement si le framework Web que vous utilisez est abstrait en paramètres.
Vous connaissez le plus:
Ce qui suit sont mes règles de base ...
Quand utiliser le corps:
Quand utiliser la chaîne de requête:
curl
application/octet-stream
Notez que vous pouvez mélanger et assortir - mettez les éléments communs, ceux qui doivent être débogables dans la chaîne de requête, et jetez tout le reste dans le JSON.