Я только что закончил читать Restful Web Services и Никто не понимает REST или HTTP и пытаюсь разработать API с дизайном RESTful.
Я заметилнесколько шаблонов в дизайне API URI:
http://api.example.com/users
http://example.com/api/users
http://example.com/users
Предположим, что эти проекты правильно используют заголовки Accept
и Content-type
для согласований содержимого между XHTML, JSON или любым другим форматом.
Являются ли эти URI вопросом чистой реализации RESTful против неявного согласования содержимого?
Я считаю, что явное использование API в URIтак что клиент будет ожидать формат данных, который по своей природе не является приятным для человека гипермедиа и может быть более легко использован без явной установки заголовка Accept
.Другими словами, API подразумевает, что вы ожидаете JSON или XML, а не XHTML.
Это вопрос логического разделения представлений ресурсов на стороне сервера?
Единственное оправдание, которое я могу придумать, почему кто-то может спроектировать свои URI с поддоменом API, заключается в том, что, исходя из моего предположения, что это метод масштабирования, это должно облегчить загрузку запросов маршрутизации в многоуровневой серверной инфраструктуре.Может быть, существуют ситуации, когда обратные прокси снимают заголовки?Я не знаю.Разные серверы обрабатывают разные представления?
Может быть, субдомен используется только для внешних потребителей, чтобы сервер избегал накладных расходов от внутреннего использования.Ограничение скорости?
Мне не хватает точки?
Мой предложенный проект будет пытаться следовать методикам RESTful, устанавливая соответствующие заголовки, используя соответствующие глаголы HTTP и представляя ресурсы вмода, которую я чувствую, включая «API» в URI, будет излишней.
Зачем кому-то создавать RESTful API с «API» в URI?
Или можетOни?Может быть, моя проблема с непониманием этого дизайна заключается в том, что это не имеет значения , если оно следует некоторой комбинации спецификации, которая может не привести к реализации RESTful API, но близко? Существует несколько способов создания обложки клавиатуры cat. HATEOAS related?
Обновление: Во время исследования этой темы у меня естьпришли к выводу, что важно рассматривать идеи REST, а не рассматривать их как религию.Таким образом, наличие или отсутствие «api» в URI является скорее решением проекта, чем постоянным правилом.Если вы планируете публично представить API своего веб-сайта, было бы неплохо использовать поддомен API, чтобы помочь разобраться с логикой приложения.Я надеюсь, что кто-то поделится своим пониманием, чтобы другие учились у него.