Как назвать идентификаторы ресурсов? - PullRequest
0 голосов
/ 24 августа 2009

У меня есть веб-сервис Restful. Бронирование номера может измениться. Какой URI является лучшим решением?

а) http://localhost/hotel/Xhotel/Reservation/15

б) http://localhost/hotel/Xhotel/Room/4/Reservation/15

в) http://localhost/hotel/Xhotel/Reservation/15/Room/4

Ответы [ 4 ]

2 голосов
/ 24 августа 2009

Это зависит только от ваших требований.

Например, если резервирование может охватывать несколько номеров, варианты b) и c) не будут подходящими URL-адресами для доступа к полному резервированию.

Еще один вопрос: уникальны ли ваши идентификаторы бронирования для всех номеров или нужен ли номер для уникальной идентификации бронирования.

0 голосов
/ 04 октября 2015

Проблема не в URL или URI. Проблема в том, что Запрос на эти 3 варианта, которые вы описали выше, просто для того, чтобы украсить ССЫЛКУ или вы собираетесь захватить или получить все результаты запросов:

а)

$_GET['hotel'] = "Xhotel";
$_GET['Reservation'] = 15;

б)

$_GET['hotel'] = "Xhotel";
$_GET['Room'] = 4;
$_GET['Reservation'] = 15;

с)

$_GET['hotel'] = "Xhotel";
$_GET['Reservation'] = 15;
$_GET['Room'] = 4;

Это то, что мы можем получить из 3-х форматов URI, которые у вас есть, и 2 последних одинаковых.

Если вы собираетесь использовать данные из запросов, это нормально, в противном случае это просто увеличит ваши программы без эффекта, поэтому предлагаю первое, если вы делаете только Резервирование

Попробуйте сделать идентификатор бронирования как UUID v3 или v5 на основе UUID отеля, чтобы сделать их уникальными.

0 голосов
/ 24 августа 2009

Каждое представление ресурса должно иметь только один URI. Если бронирование является важной частью, и номер может измениться, не включайте номер комнаты в URI. Однако REST не особо заботится о том, как выглядят ваши URI, если вы соблюдаете его ограничения.

0 голосов
/ 24 августа 2009

Прежде всего вы пишете RESTful. REST - это сокращение.
Во-вторых, по-моему, вы должны получить к ним доступ по идентификатору резервирования, поэтому первый вариант - лучший.
Резервирование (уникальный ключ: идентификатор бронирования) имеет много номеров (внешний ключ: идентификатор бронирования).
Воспользуйтесь вторым вариантом, чтобы узнать, какие бронирования находятся в конкретной комнате. Также вы можете использовать третий вариант, чтобы показать данные о комнате в бронировании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...