Je construis une API REST pour mon projet. L'API pour obtenir l'INFO d'un utilisateur donné est:
api.com/users/[USER-ID]
Je voudrais également permettre au client de transmettre une liste d'identifiants d'utilisateurs. Comment puis-je construire l'API de manière à ce qu'elle soit RESTful et intègre une liste d'ID utilisateur?
Réponses:
Si vous passez tous vos paramètres sur l'URL, des valeurs séparées par des virgules seraient probablement le meilleur choix. Ensuite, vous auriez un modèle d'URL comme le suivant:
la source
…?id=1&id=2&id=3
, il n'y a aucune garantie que les paramètres de requête en double seront combinés dans un tableau. Avec la chaîne de requête ci-dessus, PHP arrive à vous dire queid
égale[1, 2, 3]
, mais Ruby on Rails vous dit que c'est égal3
, et d'autres frameworks peuvent également agir différemment, par exemple en disantid
égal1
. Les URL comme…?id=1,2,3
évitent ce potentiel de confusion.IMO, les appels ci-dessus ne semblent pas RESTful, mais il s'agit d'une solution de contournement rapide et efficace (y). Mais la longueur de l'URL est limitée par le serveur Web, par exemple tomcat .
Tentative de repos:
Le serveur répondra à l'URI de la ressource batchtask nouvellement créée .
Le client peut maintenant récupérer la réponse par lots ou la progression de la tâche en interrogeant
GET http://example.com/api/batchtask/1254
Voici comment d'autres ont tenté de résoudre ce problème:
la source
Je trouve une autre façon de faire la même chose en utilisant
@PathParam
. Voici l'exemple de code.Appelez le service en utilisant l'URL suivante.
où
la source
Autant que je préfère cette approche: -
La bonne façon est
ou
C'est ainsi que le rack procède. Voici comment php le fait. C'est ainsi que node le fait aussi ...
la source
Vous pouvez créer une API Rest ou un projet reposant à l'aide d'ASP.NET MVC et renvoyer des données sous forme de JSON. Un exemple de fonction de contrôleur serait:
Ensuite, vous appelez simplement la fonction GetUsers via une fonction AJAX régulière fournissant le tableau d'ID (dans ce cas, j'utilise jQuery stringify pour envoyer le tableau sous forme de chaîne et le dématérialiser dans le contrôleur, mais vous pouvez simplement envoyer le tableau d'entiers et recevoir comme un tableau d'entiers dans le contrôleur). J'ai construit une API Restful entière à l'aide d'ASP.NET MVC qui renvoie les données sous forme de json interdomaine et qui peut être utilisée à partir de n'importe quelle application. Cela bien sûr si vous pouvez utiliser ASP.NET MVC.
la source