Я разработал REST API, используя Play! Framework 1.2.4, и у меня есть сильная симпатия к структуре. Простота и быстрый цикл разработки помогли мне достичь этого за долю времени, которое я бы взял, если бы я пошел традиционным маршрутом Java EE.
Теперь, когда я изучаю использование Play! 2.0.3 для моего следующего проекта. Я вижу, что, хотя структура была улучшена и упрощает разработку веб-приложений, нельзя сказать о API REST. У моего приложения не будет никакого HTML-кода - я просто отвечу XML или JSON или любым другим форматом обмена данными, который я решил использовать в будущем.
Итак, вопрос:
Кто-нибудь здесь использовал Play 2.0.x для публикации не-html чистых REST API?
Подробнее:
Вот некоторые из факторов, которые, по моему мнению, усложняют разработку чистого REST API в Play 2.0.x по сравнению с 1.2.x. Пожалуйста, исправьте мое понимание, если я ошибаюсь.
Консолидация содержимого сложнее
В игре! 1.2.4, согласование содержания содержалось в структуре. Были варианты для определения в файле маршрутов, какой тип контента запрашивается запросом.
GET /friends User.listFriends(format:'xml')
Затем в контроллере
public static void getFriends(){
render();
}
Это приведет к автоматическому рендерингу шаблона views/xml/User/listFriends.xml
. Чтобы добавить поддержку JSON завтра, все, что мне нужно было сделать, это добавить шаблон views/json/User/listFriends.json
.
Я не вижу, как это можно сделать в игре! 2.0.x
Создание не-html-шаблонов менее интуитивно понятное
После некоторых проб и ошибок я понял, что можно создать, например, listFriends.scala.xml в папке views в игре! 2,0. Затем его необходимо вызвать в коде контроллера следующим образом:
return ok(views.xml.listFriends.render())
;
Однако Eclipse это не нравится, потому что Eclipse не знает о views.xml.listFriends
, поскольку он генерируется только после завершения компиляции воспроизведения. Есть ли что-то, что мне не хватает здесь?