Подтвердить что ты не робот

Внедрить HATEOAS с HAL в Джерси

Одним из ключевых моментов создания RESTful API является HATEOAS. Теперь Джерси предлагает ссылку, которая неплоха (см. эта ссылка). Но я видел черновик HAL Specification и кажется, что это хорошо продуманная работа.

Мне интересно, есть ли какой-нибудь lib, который позволяет легко придерживаться HAL в Джерси. Я видел ссылки, упомянутые в проекте, например https://github.com/HalBuilder. Но я использую прямое сортирование POJO, и я не знаю, как смешивать его с Halbuilder.

Итак, есть ли уже какая-то библиотека, которая включает HAL в Джерси? Или, может быть, я могу использовать какой-то фильтр для увеличения генерируемых POJO вручную? Если да, может кто-нибудь дать мне ключ, где искать рядом с этим?

4b9b3361

Ответ 1

Я не могу найти прямой поддержки для этого на Джерси, но должны быть способы настроить маршаллера, который использует Джерси, чтобы преобразовать ваш POJO в JSON. (либо с помощью HalBuilder, либо создать собственный HAL-совместимый код)

Если вы используете Jerseys JAXB на основе JSON поддержки, посмотрите BootstrapTypeConverterTest в исходном коде выброса, который демонстрирует, как конвертер может использоваться для выведения вывода JSON. Преобразование единиц тестирования в/из JSON должно быть простой задачей, а проект сбрасывания имеет хорошие примеры для просмотра.

Если вы используете трикотажные изделия "Поддержка POJO" -метод, посмотрите JacksonHowToCustomSerializers для аналогичного примера о том, как создавать собственные сериализаторы.

(Если задействован JAXB, вы также можете делать классные вещи, такие как обработка пользовательских аннотаций.)

Вероятно, вы довольно хорошо знаете, как выглядят ваши объекты (входные данные) и какой код (вывод) JSON вы ожидаете, поэтому создание модульных тестов для этих преобразований должно быть относительно простой задачей.

Ответ 2

Даже если на самом деле это не ответ, у меня не хватило символов, чтобы поместить его в комментарий:)

Если вы действительно новичок в REST, я думаю, что вы начинаете, вероятно, неправильно. Я не знаю точно ваших требований, но если вы только хотите учиться, начните с простой службы REST, используйте веб-API из .net или что-то подобное на Java (достаточно простого сервлета) и попытайтесь реализовать службу, которая использует только инструменты, поставляемые http (глаголы, заголовок запроса и полезная нагрузка, ответное сообщение). Правило REST API от Marc Massé может быть хорошей ссылкой для изучения. Создайте свой собственный протокол связи с POJO или POCOs, и как только вы действительно сможете сделать REST и как это работает, вы можете использовать фреймворк, чтобы облегчить вашу работу.

Если вы начинаете с рамки, вы можете пропустить суть концепции...

Надеюсь, это поможет!

Ответ 3

Это очень мало, что нужно придерживаться HAL. Я предлагаю вам свернуть собственную мини-библиотеку, где вы переносите POJO в объекты HAL. Таким образом вы получите код так, как вам нравится, и это будет проще, чем HalBuilder.