предоставляет сторонний рест, и я потух. Модель самая примитивная — объекты Concept, имеющие отношение друг к другу через поле ascendents в json. Ну и рест-сервис использует паджинацию. Я посмотрел первые четыре книги по спрингу — там описывают как создать свой сервис, а не поглотить существующий. Где можно почитать про поглощение сторонних рест-сервисов?
уточни, что ты понимаешь под поглощением. по тексту, мне понялось так, будто ты реализуешь межсервисное взаимодействие по http через rest.
В интернете есть рест-сервис, который возвращает объекты Concept. А мне нужны java-объекты класса Concept. Через RestTemplate я бы легко сделал это, но в ресте есть паджинация и сами объекты ссылаются друг на друга. Я это назвал поглощением, потому что моя программа поглощает данные из рест сервиса, а сама ендпоинтов не предоставляет
так, окей. а в чем проблема с пагинацией, если чуть более конкретно ? для наглядности лучше бы пример. по идее, сторонний сервис должен предоставлять все необходимые параметры, чтобы этой пагинацией управлять. условно, ключевое поле - указатель, значение которого растет при сдвиге (при условии сортировки по возрастанию ) так называемая KeySet пагинация. ну или пара Limit + Offset, если стратегия такова.
Вот эти объекты я хочу прочитать в память: https://api.openalex.org/concepts Из полей интересуют только пара айдишников, название и отношение к другим объектам того же типа. Хочу прочитать все 65000 объектов, чтобы получился граф. Сложность в том, что я никогда не читал данные из сторонних рест сервисов в Java. Книги в основном описывают, как создавать свои сервисы, а не читать данные из существующих
В java начиная с 11 версии встроен Http client можешь использовать его для чтения данных. Для сериализации и десериализации json есть класс ObjectMapper https://www.baeldung.com/jackson-object-mapper-tutorial
Ну вот у тебя есть класс Meta { ..... } Есть класс Concept{ ..... } Далее ResultResponse { private Meta meta; private List<Concept> results; }
А если в Concept есть поле List<Concept>? У Jackson элегантное решение для такой задачи? В json вроде достаточно часто вложенные списки ссылаются на другие объекты лишь по их айдишникам. Или даже ссылку содержат
Да есть
какое решение есть для этого?
а где вы тут проблему вообще увидели ? в маппинге JSON на JsonNode никаких ограничений по структуре нет
надо мапить на Entity
сколько угодно объекты можно вкладывать друг в друга, зависит от вас и смысла не меняет
так написано сверху, а как связка будет работать, если там в качестве ссылки используется url https://t.me/javastart/584367
Такую же вложенность создаешь и все
а как url ссылка на объект конвертируется в экземпляр объекта?
Что значит url ссылка на объект?
когда у тебя ручка не джсон возвращает, а ссылку на участок памяти
https://softwareengineering.stackexchange.com/questions/351224/why-do-restful-services-that-implement-hateoas-provide-a-self-relationship-link
Обсуждают сегодня