Я создаю REST API для своего проекта. API для получения ИНФОРМАЦИИ о данном пользователе:
api.com/users/[USER-ID]
Я также хотел бы разрешить клиенту передавать список идентификаторов пользователей. Как я могу построить API, чтобы он был RESTful и принимал список идентификаторов пользователей?
Ответы:
Если вы передаете все свои параметры в URL-адрес, то, вероятно, значения, разделенные запятыми, будут лучшим выбором. Тогда у вас будет такой шаблон URL:
источник
…?id=1&id=2&id=3
, нет никакой гарантии , что дублирующие параметры запроса будут объединены в массив. С указанной выше строкой запроса PHP сообщает вам, чтоid
равно[1, 2, 3]
, но Ruby on Rails сообщает вам, что это равно3
, и другие фреймворки также могут действовать по-другому, например, говоритьid
равно1
. Такие URL-адреса…?id=1,2,3
позволяют избежать путаницы.IMO, вышеуказанные вызовы не выглядят RESTful, однако это быстрое и эффективное обходное решение (y). Но длина URL-адреса ограничена веб-сервером, например, tomcat .
RESTful попытка:
Сервер ответит на URI вновь созданного ресурса пакетной задачи .
Теперь клиент может получить пакетный ответ или ход выполнения задачи путем опроса
GET http://example.com/api/batchtask/1254
Вот как другие пытались решить эту проблему:
источник
Я нашел другой способ сделать то же самое, используя
@PathParam
. Вот пример кода.Позвоните в службу, используя следующий URL.
где
источник
Насколько я предпочитаю этот подход: -
Правильный способ
или
Вот как это делает стойка . Вот как это делает php . Вот как это делает node ...
источник
Вы можете создать Rest API или спокойный проект с помощью ASP.NET MVC и возвращать данные в виде JSON. Пример функции контроллера:
Затем вы просто вызываете функцию GetUsers через обычную функцию AJAX, предоставляющую массив идентификаторов (в этом случае я использую jQuery stringify для отправки массива в виде строки и дематериализации его обратно в контроллер, но вы можете просто отправить массив целых чисел и получить это как массив int в контроллере). Я создал полный Restful API с использованием ASP.NET MVC, который возвращает данные в виде междоменного json и может использоваться из любого приложения. Конечно, если вы можете использовать ASP.NET MVC.
источник