Недавно во время работы с клиентом feign в приложении весенней загрузки (которое в моем случае не является веб-приложением), я вижу, что клиент не в состоянии де-сериализовать объект правильно. Как указал мне коллега - он оказался из-за регистрации модуля HAL -условен охраняемых @ConditionalOnWebApplication на spring auto configuration of hateosFeign Client (в среде без Интернета) для RepostoryRestResource с HAL - недопустимый вариант использования?
На зная это есть решение, которые могут быть помещены в месте, которое было бы преодолеть этот
- Мы можем добавить декодер к симулировать клиент, который содержит ObjectMapper, который имеет зарегистрированный модуль HAL (небольшой фрагмент кода, но еще дополнительную работу)
- Преобразовать в вебе-приложение - что я чувствую себя не хорошее решение вообще и не должно быть сделано в сути, чтобы заставить вещи работать из коробки.
Так что теперь, зная это, кто-нибудь столкнулся с этим? Я чувствую, что притворный клиент для ресурса отдыха Jpa - это допустимый сценарий.
Ниже приведен пример ответа сервера, который является страничным. Обратите внимание на содержание мета-данных в ниже получен ответ (имеет один результат), но с из затруднительного, когда я пытаюсь прочитать содержимое выгружаемого ресурса было бы оказывается утратившими/пустой
{
"_embedded": {
"emails": [{
"id": "1a5edced-c165-4209-9d1c-9549b6841d13",
"tenantId": "a56982a6-6e12-4fe6-95d1-b735cedda2dc",
"email": "[email protected]",
"_links": {
"self": {
"href": "http://10.190.224.138:8086/emails/1a5edced-c165-4209-9d1c- 9549b6841d13"
},
"email": {
"href": "http://10.190.224.138:8086/emails/1a5edced-c165-4209-9d1c-9549b6841d13"
}
}
}]
},
"_links": {
"self": {
"href": "http://10.190.224.138:8086/emails/search/whatssss?email=whatever%40whatever.com"
}
},
"page": {
"size": 20,
"totalElements": 1,
"totalPages": 1,
"number": 0
}
}
спасибо за ответ, первое решение действительно работает. Но хотелось бы знать, не означает ли клиент, что он работает для ответа hal + json, независимо от того, вызваны ли из веб-среды/не-веб-среды какие-либо мысли по этому поводу? – naav
С моей точки зрения, я согласен с вами, Feign предназначен для создания клиентов-клиентов без ограничений, связанных с веб-приложениями или не-веб-приложениями. –