2009-08-24 3 views
0

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

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

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

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

+1

Что вы подразумеваете под словом «Комната бронирования может быть назначена в другую комнату»? – 2009-08-24 12:17:47

+0

Я бы попробовал un-babby, но я не могу понять, что он спрашивает – Will

ответ

2

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

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

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

+0

Тогда, если я выбрал вариант a), как мне установить отношения между комнатой и резервированием? – Iguramu

+0

См. Мой ответ ниже. –

0

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

+0

Если вы проверите этот сайт: http://stackoverflow.com/questions/207477/restful-url-design-for-search. Как вы видите, есть отношения между автомобилями и гаражом. Поэтому я думаю, что если гараж/yyy/cars - лучший вариант, то комната/4/бронирование/15 тоже. – Iguramu

+0

Это всего лишь мои два цента, вы должны делать все, что считаете правильным. –

0

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

0

Проблема не URL или URI, Проблема в том случае, если запрос на это 3 вариантов, которые Вы описали выше, только для украсит LINK или ваш собирается захватить или получить все результаты из запросов, как:

)

$_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 последние являются одинаковыми.

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^