Стандарты веб-сервисов Resful, лучшие практики

Я ищу лучшие практики по стандартам спокойного веб-сервиса. Одна из основных вещей, с которыми я хочу разобраться, — это разделение сущностей в URL-адресе. Что правильно делать, группировать методы в один url или разделять по entityname?

[WebGet(UriTemplate = "countries/{id}")]
Country GetCountry(int id);

[WebInvoke(UriTemplate = "countries/{id}", Method = "POST")]
Country CreateCountry(int id, Country country);
or 
[WebGet(UriTemplate = "resources/lists/countries/{id}")]
Country GetCountry(int id);

[WebInvoke(UriTemplate = "resources/lists/countries/{id}", Method = "POST")]
Country CreateCountry(int id, Country country);

person Yara    schedule 02.10.2012    source источник
comment
Вы можете посмотреть на stackoverflow.com/questions/tagged/rest.   -  person John Saunders    schedule 02.10.2012


Ответы (1)


Первый вариант чище. Все URI в REST API должны быть ресурсами, поэтому «ресурсы» не нужны в URI, и я бы сказал, что «списки» тоже не нужны, поскольку это просто способ представления набора ресурсов.

Кроме того, если вы собираетесь реализовывать службы REST на C#, как показано в примере, я настоятельно рекомендую использовать Веб-API ASP.NET. Он обеспечивает очень чистый, мощный и простой способ реализации служб REST.

Restful Web Services — отличная книга, в которой лучшие практики в области дизайна веб-сервисов для отдыха, а также отличные примеры. Вы также можете ознакомиться с моделью зрелости Ричардсона, которая описывает безотказность службы с точки зрения уровней зрелости. Чтобы сервис был спокойным, он должен быть на высшем уровне зрелости, но уровни дают хорошее руководство для того, чтобы предпринять шаги в правильном направлении.

person johnlcox    schedule 03.10.2012