В дополнение к ответу Даррела:
Использовать иерархическую природу HTTP URI; Рассматривайте каждый сегмент пути как углубление в общее пространство управляемых элементов (например, заказов, клиентов). Если в какой-то момент вам нужно «проиндексировать» коллекцию по нескольким измерениям (например, запрос), используйте параметры строки запроса:
/ услуги / продукты / Автомобили / японская-автомобили / Toyota / Corola / & priceMin = 2000 & priceMax = 5000
Обратите внимание, что (как сказал Даррелл) структура должна быть непрозрачной для клиента. Это означает, что клиент должен обнаружить параметры во время выполнения (для этого предназначены формы или шаблоны URI). Конечно, клиенту и серверу нужны общие знания о значении, например, priceMin. Это знание должно быть в некоторой спецификации времени разработки, например, в спецификации отношения ссылки. Может быть, посмотрите на http://www.opensearch.org для подробного использования.
Также интересна хост-часть URI. Если на каком-то этапе вам может понадобиться перенести части ваших служб на другой компьютер, спроектируйте ваши URI так, чтобы соответствующая информация находилась в доменной части. Затем вы можете использовать простой DNS для маршрутизации запросов на разные машины.
НТН,
Jan