Правильный способ взаимодействия API с базой данных? - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь разместить базу данных (на AWS или Heroku) для хранения данных из моего веб-приложения.Мне также нужно создать API для взаимодействия с базой данных.В основном, как эта картинка из Google.

enter image description here Источник изображения: https://dzone.com/articles/an-introduction-to-restful-apis

Что я пытаюсь выяснить:

API и база данных обычно размещаются отдельно?Или они часто проводятся вместе?Я не уверен, являются ли API и DB вместе 1 компонентом (с подкомпонентами API и DB), или это 2 отдельных компонента.

Если они являются 1 компонентом и могут быть размещены вместе, то я считаю, что вы можете использовать что-то вроде Express.js для своего API, который может запрашивать базу данных и отвечать на запросы HTTP с веб-сайта.

Если это 2 отдельно размещенных компонента, я считаю, что это означает, что мне нужно иметь 2 API, если только мой API не может напрямую взаимодействовать с базой данных (я не уверен, что это правильно).Поэтому мне понадобится мой API для общения с какой-нибудь серверной технологией (PHP, Java и т. Д.), Которая затем будет запрашивать базу данных и возвращать результат в API.Так что в основном мой API говорит с API, который обращается к базе данных.Я не уверен, что это слишком усложняет ситуацию, но похоже, что так.

Я пытаюсь прояснить, как работает этот процесс.

1 Ответ

0 голосов
/ 11 марта 2019

API и база данных обычно размещаются отдельно?Или они часто проводятся вместе?

Поскольку службе API требуется много запросов к базе данных, вам необходимо минимальное сетевое отставание между ними.

Так что, как правило, они должны быть размещены вместе.Что это значит, зависит от стиля хостинга.Использование того же облачного сервиса имеет смысл, если вы используете что-то вроде AWS Lambda.В противном случае используйте одну и ту же машину как для базы данных, так и для службы HTTP, пока вы не масштабируетесь до точки, где вам нужно разделить их.

Если они являются 1 компонентом и могут быть размещены вместе, тогда я вам верюможет использовать что-то вроде Express.js для вашего API, который может запрашивать базу данных и отвечать на запросы HTTP с веб-сайта.

Это распространенный подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...