На работе здесь у нас есть ящик, который предоставляет XML-каналы деловым партнерам. Запросы для наших каналов настраиваются путем указания параметров и значений строки запроса. Некоторые из этих параметров являются обязательными, но многие нет.
Например, мы требуем, чтобы все запросы указывали GUID для идентификации партнера, и запрос может быть либо для действия «получить последний», либо для «поиска»:
Для поиска: http://services.null.ext/?id=[GUID]&q=[Search Ключевые слова]
Последние данные в категории: http://services.null.ext/?id=[GUID]&category=[ID]
Структурировать схему URL RESTful для этих параметров легко:
Поиск: http://services.null.ext/[GUID]/search/[Keywords]
Последний: http://services.null.ext/[GUID]/latest/category/[ID]
Но как нам обращаться с дюжиной необязательных параметров, которые у нас есть? Многие из них являются взаимоисключающими, и многие требуются в комбинациях. Очень быстро число возможных путей становится чрезвычайно сложным.
Каковы некоторые рекомендуемые методы для сопоставления URL-адресов со сложными строками запроса в удобнее / REST / ful / paths?
(меня интересуют соглашения, схемы, шаблоны и т. Д. Не специфические технологии для реализации перезаписи URL на веб-сервере или в рамках.)