
Одна из частых ошибок при проектировании API - это отождествление модели объектов API со схемой БД. Особенно ярко проявляется при работе с REST API, когда аналитик убежден, что каждый HTTP-ресурс - это таблица в БД.
Почему модель данных API может отличаться от модели БД?
1️⃣ Первичная задача при проектировании сущностей и связей в БД - это эффективное хранение данных, обеспечение производительности и стабильности сервис. Такая модель может быть неудобна для потребителей сервиса. Например, БД может иметь ненормализованную форму.
2️⃣ Сервис может использовать нереляционное хранилище. Например, MongoDB для хранения объектов в виде документов.
3️⃣ Сервис может использовать несколько БД для хранения данных. Возможно, из-за легаси. Или мы используем разные хранилища для разных типов данных
4️⃣ Сервис может вообще не иметь своего хранилища, а получать данные из внешних сервисов и систем.
5️⃣ Жесткая связка модели API и схемы БД, потребует большего времени на доработки, если одна из них меняется.
⚠️ Ключевая задача API - это инкапсуляция внутренней логики и модели данных системы.
API должно быть простым и удобным для внешних потребителей, исходя из этого мы должны проектировать объекты и ресурсы, с которыми будут работать сервисы-потребители.
Подписывайтесь на продолжение: @nextway_news
Почему модель данных API может отличаться от модели БД?
1️⃣ Первичная задача при проектировании сущностей и связей в БД - это эффективное хранение данных, обеспечение производительности и стабильности сервис. Такая модель может быть неудобна для потребителей сервиса. Например, БД может иметь ненормализованную форму.
2️⃣ Сервис может использовать нереляционное хранилище. Например, MongoDB для хранения объектов в виде документов.
3️⃣ Сервис может использовать несколько БД для хранения данных. Возможно, из-за легаси. Или мы используем разные хранилища для разных типов данных
4️⃣ Сервис может вообще не иметь своего хранилища, а получать данные из внешних сервисов и систем.
5️⃣ Жесткая связка модели API и схемы БД, потребует большего времени на доработки, если одна из них меняется.
⚠️ Ключевая задача API - это инкапсуляция внутренней логики и модели данных системы.
API должно быть простым и удобным для внешних потребителей, исходя из этого мы должны проектировать объекты и ресурсы, с которыми будут работать сервисы-потребители.
Подписывайтесь на продолжение: @nextway_news