apigee.com/about/api-best-practices/all/webcast

я возникли некоторые трудности при разработке URL-адреса для службы отдыха, которая может обрабатывать запросы клиентов на основе разбиения на страницы в качестве одного типа операции или запроса больше или меньше операторов в качестве другого типа операции. Например:

Разбивка:

GET /customers/0/100

Это получит 100 клиентов на странице 0.

Больше / меньше чем:

Мне также нужен дизайн URL, чтобы получить клиентов с идентификатором больше n (например, скажем, 716). Как бы вы включили «больше чем» или «меньше чем» в URL? Я должен помнить, что символы ">" и "<" недопустимы в URL. Я думаю, что этот дизайн URL выглядит странно:

GET /customers/greaterthan/716
GET /customers/lessthan/716

Я не могу использовать диапазон, так как это может противоречить шаблону нумерации, указанному выше, и в любом случае не является хорошим решением, например:

GET /customers/716/999999999999
GET /customers/0/716

Я уверен, что упускаю что-то очевидное - у кого-нибудь есть лучшее решение?

 Vidar06 янв. 2011 г., 12:54
это делается с помощью фреймворка Restlet в Java. По сути, я запрашиваю базу данных для записей.
 UVM06 янв. 2011 г., 12:50
как вы планируете реализовать это в сценарии в реальном времени - просто для любопытства

Ответы на вопрос(1)

Решение Вопроса

а такжеменьше, чемзвучит как параметр запроса для меня, так как вы запрашиваете ваш ресурс с этими параметрами. Так что вы должны сделать что-то вроде:

/ Клиентов? Страница = 1, или же
/ Клиенты? Страница = 1 & = 716 GT, или же
/ Клиенты? Страница = 1 & = 716 GT & л = 819

Вы можете даже ограничить размер страницы:

/ Клиенты? Страница = 1 & = 716 GT & л = 819 & MaxPageSize = 100

гдеGT обозначает больше чем (так же, как в xml-escapeing) ил стоит меньше, чем.

 Tarlog06 янв. 2011 г., 15:18
Это не важно Разбиение на страницы и меньше / больше - не связанные проблемы. Вы должны определить свой ресурс. В вашем случае ресурс это клиенты. И пагинация, и меньше / больше являются запросом к ресурсу, но это все тот же ресурс. Поэтому вы не должны пытаться вставить свою функциональность в url (path-param), а вместо этого вы должны использовать параметры запроса. В конце ваш вызов достигнет того же класса ресурсов (в Java), чем вы можете добавить свои параметры запроса в запрос SQL или что-то вроде этого.
 Darrel Miller06 янв. 2011 г., 15:37
Даже если вы поместите параметры в строку запроса, вы все равно будете ссылаться на другой ресурс. Это нормально, хотя. Два разных ресурса могут по-прежнему отображать части одного и того же базового набора данных. Простое правило: если это другой URL и он не перенаправляет, то это другой ресурс.
 Opentuned22 нояб. 2012 г., 16:33
Кажется, Tarlog предоставил здесь хорошее решение, однако другие могут найти этот ресурс полезным для разработки и практики API ...apigee.com/about/api-best-practices/all/webcast
 Nicholas Shanks16 нояб. 2012 г., 15:51
Кроме того, вы должны убедиться, что параметры строки запроса всегда находятся в одном и том же порядке (при условии, что они независимы), иначе / resource? a = 1 & b = 2 - это другой ресурс из / resource? b = 2 & a = 1 и кэшированная запись для одно не может быть возвращено другому
 Vidar06 янв. 2011 г., 14:53
извините, я думаю, что я всех здесь запутал - я не имею в виду, делаю нумерацию страниц и больше, меньше, чем операции одновременно. Разбивка на страницы - это отдельная функция, и она меньше / больше, чем функция другого типа.

Ваш ответ на вопрос