В Play приложение я проектирования, вот некоторые из моих маршрутовКак определить страницу редактирования в REST API?
POST /visits controllers.Visit.create
GET /visits controllers.Visit.visits
GET /visits/:id controllers.Visit.visit(id: Long)
PUT /visits/:id controllers.Visit.update(id: Long)
DELETE /visits/:id controllers.Visit.delete(id: Long)
Я поддерживающих интерфейс браузера тоже. Я следую инструкциям, которые я здесь видел: RESTful on Play! framework
Я могу легко предоставить HTML-шаблон для отображения подробной информации об одном конкретном посещении или списке посещений. Но как «правая страница» легко впадает в это, что должно быть предварительно заполнено информацией из определенного посещения? Я могу легко сделать что-то вроде: GET /visits/:id/edit controllers.Visit.edit(id: Long)
, которое вернет предварительно заполненную страницу с информацией о посещении, или я могу создать статическую HTML-страницу, которая вызывает /visits/:id
с вызовом AJAX для заполнения полей, и это позволит мне избежать развращения моего ресурса, управляемый API с определенным для браузера маршрутом. Или есть какой-то лучший вариант? Что такое лучшая практика и почему?
Условное объяснение. Еще один вопрос. Вы предложили AJAX GET заполнить поля моего стандартного API, но затем вы предлагаете, чтобы у вас был маршрут с конкретным браузером. Маршрут, ориентированный на страницу браузера, позволит мне избежать дополнительного запроса клиент-сервер, возвращая предварительно заполненную страницу. Почему я не хочу этого делать? Есть ли какой-либо аргумент для того, чтобы GET выполнялся с AJAX после загрузки статической страницы? Я бы предположил, что статическое кэширование страниц было бы огромной победой, и выполнение маршрута страницы браузера было бы лучше всего для ... простых пользовательских страниц, не относящихся к пользователю, как вы описываете. Нет? – sdanzig
Статический документ с AJAX действует как клиент для вашего API, а не как ресурс API, и если вы стараетесь не связывать его слишком много с одной конкретной услугой, вы можете повторно использовать его как пользовательский интерфейс для всех ваших API. Например, проверьте HAL-браузер. https://api-sandbox.foxycart.com/hal-browser/hal_browser.html#/. Это всего лишь статический html, который вы можете сбросить на любой RESTful API, управляемый HAL, и он работает как браузер для всего API. –