Что это и зачем мне?
Представьте, что у вас есть некоторая база данных, будь то база данных сайта, или товары в системе управления торговлей, или что-либо еще с одной стороны, и любое (мобильное, веб, windows, linux) создаваемое приложение - с другой. Тогда вам понадобится открыть доступ к базе данных через Application Programming Interface (API) - средство доступа к данным. Это особенно необходимо, когда к одной базе обращаются самые разные клиентские приложения: мобильные, веб-сайт, некоторая система анализа и учета.
Сервер API позволяет с помощью обычных запросов получать и изменять данные в базах данных. Мы рассмотрим решение, которое развивает компания IBM на основе node.js под названием loopback. Оно запустит нам сервер API к практически любому типу баз данных (postgresql, mongodb, oracle, mysql и множество других). В будущем, когда вы решите заменить одну базу данных на другую - вам не придется менять клиентские приложения.
Для примера мы возьмем уже готовую базу данных wordpress-сайта.
Как сделать?
1. Установить консольную утилиту loopback глобально в систему:
2. Создать приложение (назовем его datapoint):
lb app datapoint; cd datapoint
3. Установить коннектор для mysql:
npm install --save loopback-connector-mysql
4. Установить данные подключение, ответив на вопросы в консоли:
lb datasource
(в нашем примере мы назовем источник данных как "wordpress")
5. Создать скрипт, который по существующей базе данных создаст модели данных. Для этого:
5.1 создаем файл server/initialization.js,
5.2 создаем директории common/ и common/models/ в директории проекта,
5.3 в файл server/initialization.js вставляем следующий код: https://pastebin.com/gDBZPw0W
(заменив в нём wordpress на название источника данных, а tailor - на название вашей базы данных в mysql, это в моем случае она tailor:))
6. Запустить инициализацию из корневой директории проекта:
node server/initialization.js
7. Запустить собственно сам сервер API
node .
Что получаем?
Теперь по адресу http://localhost:3000 у нас готовое API к нашему источнику данных. С ним легко "поиграться" по адресу http://localhost:3000/explorer/, пример того что там можно увидеть приведен ниже на снимке экрана.
Чтобы получить все посты в формате json, достаточно выполнить следующий запрос: http://localhost:3000/api/wp_posts.
В итоге
При необходимости, loopback позволяет, ограничивать доступ по специальному коду (токену), создавать пользователей и роли, разграничивая им права доступа и много другое - вплоть до возможности подписки на события при изменениях в данных.
Если вы не знаете зачем вам это нужно, то... нет, вам это действительно нужно, когда у вас есть данные, с которыми вы хотели бы работать в других программах. Не стоит предполагать, что все такие программы надо писать. Приведу пример: таблицы Google позволяют одной простой формулой подключать такое API и наводить любую аналитику с такими данными.
Формула не секретна :) Попробуйте ввести в таблице Google в ячейку
=ImportJSON("http://date.jsontest.com"; ""; "noInherit,noTruncate")
(подсказка, у вас не сработает, если только вы не скопировали предварительно этот скрипт)
Скопировав и сохранив скрипт (инструменты -> редактор скриптов), на основе этой формулы вы получите данные прямо в таблицу: