В моей компании есть много проектов, которые должны взаимодействовать с одной и той же конечной точкой REST. Однако ответ представляет собой очень большой JSON, и в каждом проекте я хочу объявлять только те поля, которые необходимы для программы. На данный момент мы объявили клиентов в каждом проекте следующим образом:
Код: Выделить всё
public interface BookClient {
@GetExchange("/api/v1/books")
List getBooks();
// many more methods and interface like this
}
Я хотел бы переместить эти клиенты в общую библиотеку, однако я хочу, чтобы POJO оставались в самом проекте. Я подумал, что могу использовать дженерики, чтобы заархивировать это:
Код: Выделить всё
@GetExchange("/api/v1/books")
List getBooks();
Это нормально компилируется, но когда я вызываю метод Spring, возвращает Map с парами ключей и значений JSON. Это совершенно понятно, когда я об этом думаю: конечно, библиотека не знает, как создать экземпляр POJO, потому что он недоступен в ее пути к классам.
Какие еще у меня есть варианты? ? Есть ли способ вернуть что-то еще из вызова API и выполнить фактическое сопоставление с POJO в самом проекте?
Подробнее здесь:
https://stackoverflow.com/questions/792 ... in-project