Я создаю веб-сайт, а также хочу создать веб-службу REST для доступа к множеству одинаковых функций (с помощью движка google и spring mvc3), и я не уверен в лучших практиках того, как интегрированные/разделить 2 части должны быть.
Например, если я хочу просмотреть ресурс, я могу предоставить URL-адрес в форме:
{resourcetype}\{resourceid}
Запрос GET на этот URL-адрес может быть перенаправлен на представление, которое создает веб-страницу, когда клиент основан на HTML/браузере. spring имеет (из того, что я читал - еще не пробовал) возможность использовать этот же URL-адрес ресурса для представления представления, которое возвращает HTML/Xml/JSON в зависимости от типа содержимого. Все это кажется замечательным.
Запросы POST к URL-адресу для создания новых ресурсов в REST должны возвращать 201 СОЗДАН (или так я читаю) вместе с URL-адресом созданного ресурса, который кажется прекрасным для Api, но кажется немного отличным от того, что можно было бы ожидать от норма в веб-странице (где вы, вероятно, будете перенаправлены на страницу, показывающую созданный вами ресурс, или на страницу, в которой говорилось, что она была создана успешно или аналогично). Должен ли я обрабатывать это, обслуживая страницу с другим URL-адресом, который содержит форму для создания ресурса, затем отправляет URL-адрес Api через ajax и получает ответ и перенаправляет URL-адрес ресурса, включенный в ответ.
Этот шаблон кажется, что он будет работать (и должен работать и для DELETE), но это хороший подход, или я лучше сохраняю URL-адреса REST Api и URL-адреса веб-сайта отдельно? это похоже на то, что это может привести к кратковременному дублированию и дополнительной работе. Но наличие одного URL-адреса может означать, что вы зависите от javascript, доступного на клиенте поддерживающего HTML 5 браузера.