API REST : bonnes pratiques
Bonjour,
J'ai lu pas mal de documentation sur la création d'API REST mais il y a pas mal d'auteurs qui se contredisent.
J'aimerai donc des clarifications sur les bonnes pratiques à utiliser.
##############################
Méthode HTTP : certaines personnes disent que pour envoyer des données, il faut utiliser uniquement des POST alors que d'autres préconisent d'utiliser POST (pour la création), PUT (pour la modification), DELETE (pour la supression)
=> qu'elle est la meilleure méthode ? on peut toutes les utiliser ? pourquoi ?
##############################
Structure de l'URL, j'ai vu plusieurs méthodes pour envoyer des commandes :
Code:
1 2 3
|
// {ids} = liste des id des ressources (utilisation du séparateur ",")
POST api/<ressources>/{ids}/<ressources_enfants>/{ids}/action?key1=value1&key2=value2 |
Code:
1 2 3 4 5 6
|
// {ids} = liste des id des ressources (utilisation du séparateur ",")
POST api/<ressources>/{ids}/<ressources_enfants>/{ids}/action
Envoie des paramètres en x-www-form-url-encoded
key1=value1&key2=value2 |
Code:
1 2 3 4 5 6
|
// {ids} = liste des id des ressources (utilisation du séparateur ",")
POST api/<ressources>/{ids}/<ressources_enfants>/{ids}/action
Envoie des paramètres en form-data
key1=value1&key2=value2 |
Code:
1 2 3 4 5 6 7 8 9
|
// {ids} = liste des id des ressources (utilisation du séparateur ",")
POST api/<ressources>/{ids}/<ressources_enfants>/{ids}/action
// Envoie des paramètres en JSON
{
key1 : value1,
key2 : value2
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
// {ids} = liste des id des ressources (utilisation du séparateur ",")
// {action} = POST/PUT/DELETE selon l'action désirée
{action} api/<ressources>/{ids}/<ressources_enfants>/{ids}
// Envoie des paramètres en JSON
{
key1 : value1,
key2 : value2
}
// Mais comment gérer si on veut faire des actions spécifiques ? |
Est-ce qu'il y a des méthode à proscrire ? laquelle est la meilleure (la plus simple d'utilisaiton pour l'utilisateur) ? pourquoi ?
##############################
Pour les informations retournées par le serveur, certaines personnes renvoie un objet JSON contenant le message d'erreur avec le code d'erreur dans le header HTTP alors que d'autre renvoie un objet JSON contenant le code d'erreur et le message.
=> les deux pratiques sont viables ? laquelle est la meilleure ? pourquoi ?
Merci d'avance