Estou construindo uma API REST para meu projeto. A API para obter as INFORMAÇÕES de um determinado usuário é:
api.com/users/[USER-ID]
Também gostaria de permitir que o cliente passe uma lista de IDs de usuário. Como posso construir a API de modo que seja RESTful e tenha uma lista de IDs de usuário?
Respostas:
Se você estiver passando todos os seus parâmetros no URL, provavelmente valores separados por vírgulas seriam a melhor escolha. Então você teria um modelo de URL como o seguinte:
fonte
…?id=1&id=2&id=3
, não há garantia de que parâmetros de consulta duplicados serão combinados em um array. Com a string de consulta acima, o PHP diz queid
é igual[1, 2, 3]
, mas Ruby on Rails diz que é igual3
, e outras estruturas também podem agir de forma diferente, por exemplo, dizerid
igual1
. URLs como…?id=1,2,3
evitam esse potencial de confusão.IMO, as chamadas acima não parecem RESTful, no entanto, essas são soluções alternativas rápidas e eficientes (y). Mas o comprimento da URL é limitado pelo servidor da web, por exemplo, tomcat .
Tentativa RESTful:
O servidor responderá ao URI do recurso batchtask recém-criado .
Agora o cliente pode buscar a resposta em lote ou o progresso da tarefa por meio de sondagem
GET http://example.com/api/batchtask/1254
Esta é a forma como outras pessoas tentaram resolver este problema:
fonte
Encontro outra maneira de fazer a mesma coisa usando
@PathParam
. Aqui está o exemplo de código.Ligue para o serviço usando o seguinte url.
Onde
fonte
Por mais que eu prefira essa abordagem: -
A maneira correta é
ou
É assim que o rack faz. É assim que o php faz. É assim que o node também faz ...
fonte
Você pode construir uma API Rest ou um projeto restful usando ASP.NET MVC e retornar dados como JSON. Um exemplo de função de controlador seria:
Em seguida, basta chamar a função GetUsers por meio de uma função AJAX regular fornecendo o array de Ids (neste caso, estou usando o jQuery stringify para enviar o array como string e desmaterializá-lo de volta no controlador, mas você pode apenas enviar o array de ints e receber como uma matriz de int no controlador). Eu construí uma API Restful inteira usando ASP.NET MVC que retorna os dados como json de domínio cruzado e que pode ser usada a partir de qualquer aplicativo. Isso, claro, se você puder usar a ASP.NET MVC.
fonte