Добавление динамически созданного элемента в REST API в Springboot

#spring #spring-boot #rest

Вопрос:

Я пытаюсь создать базу данных, в которой будут храниться цены на активы, полученные с бирж. Я создал класс Exchange, который содержит переменные, представляющие собой различные цены. В моем коде у меня есть следующее:

  try{
        Exchange Coinbase = new Exchange();
        Coinbase.setName("Coinbase");
        Coinbase.setBtcBuy(priceRequestCoinbase(btcBuy));
        Coinbase.setBtcSell(priceRequestCoinbase(btcSell));
        Coinbase.setEthBuy(priceRequestCoinbase(ethBuy));
        Coinbase.setEthSell(priceRequestCoinbase(ethSell));
 

Сейчас я просто пытаюсь понять, как я мог бы добавить это в свою базу данных, чтобы позже к нему можно было получить доступ через вызовы api.

Ответ №1:

Вы всегда можете преобразовать это в строку json с помощью objectmapper и сохранить в виде текста / json в вашей БД. API может вернуть это и напрямую преобразовать в ваш объект exchange. Добавление: лучшим способом было бы иметь таблицу exchange с именами ваших полей в виде столбцов. Создайте класс репозитория, реализующий jparepository для вашего объекта exchange. Аннотируйте свой объект exchange аннотацией @entity и автоматически созданным идентификатором. Используйте встроенный метод сохранения jpa для сохранения в БД.

Также по стандартам Java имена переменных должны начинаться со строчной буквы (coinbase)

Комментарии:

1. Спасибо. Таким образом, я мог бы преобразовать объект coinbase в строку, выполнив что-то вроде String jsonString = ObjectMapper.writeValueAsString(Coinbase);? И этот вызов будет выполнен после всех этих наборов, да? Кроме того, как бы мне на самом деле сохранить его в БД?

2. Правильным способом было бы иметь таблицу exchange с полями в виде столбцов. Тогда вам не нужно было бы преобразовывать в строку или что-то еще, просто используйте репозиторий jpa для сохранения вашего объекта в db. Если это невозможно и весь объект должен быть сохранен целиком, вы можете сохранить его в текстовом столбце в БД в виде строки json. Лучше первый способ.

3. Я бы посоветовал вам сделать это. Взгляните на Spring Data JPA ( baeldung.com/the-persistence-layer-with-spring-data-jpa и baeldung.com/the-persistence-layer-with-spring-and-jpa ), чтобы вы могли сопоставить реляционную базу данных с вашими объектами Java.