Задать вопрос
@pavel_the_man

Точь в точь ли маппятся поля json-сущности на поля в таблицах базы данных?

Опишу проблему: я не совсем понимаю связь между json-сущностями которые отгружаются rest-методом и таблицами в базе данных.

Вот говорят: в rest-api сущность отгружается полностью. Окей. Дергаем Postman'ом get-запрос (или DevTools -> Network -> XHR) и смотрим данные. Приходят объекты где есть ключ и значение. Каждый ли ключ обязательно должен маппится с полем в какой-то таблице?

Казалось бы - да? Сразу отмечу: т​​ип данных jsonb в бд не рассматриваю - я знаю, что можно json запихнуть хоть в одно поле. Это частный случай. У меня вопрос про общую практику. Итак, казалось бы - да. Один ключ-поле = одно поле в бд. Но ведь это же не безопасно. Так любой может открыть devtools и посмотреть что отгружается и прикинуть как устроена база данных.

И реальная ситуация, которую я вижу, она иная. Я открываю таблицу и вижу там много разных полей. А в сущности, которая отгрузилась, данных меньше. При этом в этой таблице есть значения из json-сущности: вот uuid, вот текстовка, вот дата, вот статус с булевым типом...

Моя гипотеза следующая:
Json-сущность отгружающаяся через Postman или devtools не равна сущности в базе данных. Это означает что не все поля в json-сущности маппятся на соответствующие им поля в таблицах в бд.
Так что же тогда нужно понимать под фразой "сущность отгружается полностью"?

То же самое и с post/put/patch запросами. Передаем несколько параметров, но обновлений в базе существенно больше. Вот говорят: put обновляет сущность целиком. А кто-то говорит: put обновляет таблицы в бд целиком. Что есть правда?

Мне все это надо чтобы лучше понимать rest-api интерфейс. Я вижу методы в Swagger, вижу передаваемые в них поля и значения, но в базе данных вижу что нет маппинга каких-то полей.

Понимаю, в идеале, чтобы понять, мне надо самому запрограммировать тестовый rest api интерфейс и настроить запись и чтение в бд. Тогда сразу все в голове встанет на свои места. Но я не умею программировать rest-интерфейсы.

На всякий случай отмечу: я знаю, что "одна таблица не равно одна сущность". Сущность может быть раскидана по нескольким таблицам. Мой вопрос больше про маппинг полей в json-объектах отгружаемых Postman/Devtools и полями в таблицах бд.
  • Вопрос задан
  • 144 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Я просто оставлю это здесь: отображение объектов на реляционную БД - это Вьетнамская война компьютерной науки
Ответ написан
Vamp
@Vamp
Опишу проблему: я не совсем понимаю связь между json-сущностями которые отгружаются rest-методом и таблицами в базе данных.

А её и нету, связи этой.

REST API - это одно. Там свои форматы, логика, модель данных. Все это оптимизировано для удобства взаимодействия клиента с сервером.

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

Каждый ли ключ обязательно должен маппится с полем в какой-то таблице?

Не должен.

Так что же тогда нужно понимать под фразой "сущность отгружается полностью"?

Где вы эту фразу услышали?

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

Аналогично и схема REST API не обязана в точности соответствовать структуре базы.

Мой вопрос больше про маппинг полей в json-объектах отгружаемых Postman/Devtools и полями в таблицах бд.

Не припомню чтобы Postman/Devtools как-то относились к базам данных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы