Если бы я хотел создать службу REST API с rethinkdb - делает горизонт еще добавить стоимость
Нет, если все, что вы хотите это операция CRUD REST API отображения конечных точек на данные RethinkDB, то Горизонт вам не поможет.
Horizon отлично подходит, если вы хотите использовать API websocket с функциями «реального времени» и планируете использовать клиент Horizon в браузере.
Horizon усомнился в том, как он обрабатывает пользователей и разрешения (он применяет их на стороне сервера с использованием разных пользователей/разрешений для каждого приложения, а не для таблицы пользователей RethinkDB).
# RethinkDB
r.db('rethinkdb').table('users')
r.db('rethinkdb').table('permissions')
# Horizon
r.db('myapp_internal').table('users')
r.db('myapp_internal').table('users_auth')
В настоящее время я играю со стеком, который использует feathers для разработки общих услуг, которые могут быть подвержены через REST или WebSocket транспорта. Это сложнее, но я могу использовать как перья, так и Horizon, но будет некоторая работа по правильному отображению разрешений на обеих конечных точках. (Плюс принудительное выполнение схемы ...) Перья поддерживают различные поставщики аутентификации, которые возвращают JWT, которые вы могли бы передать в горизонт (если вы установили ту же самую секретную клавишу) ...
Если вам не нужны функции реального времени в вашей базы данных, вы можете проверить PostgREST, поскольку он имеет в своем распоряжении JWT-аутентификацию и использует фактические роли базы данных для авторизации на уровне строк. «Один источник истины». Вы можете использовать это вместе с PostGraphQL, если хотите как REST, так и GraphQL! Кроме того, вы можете хранить данные JSON в столбцах в эти дни, чтобы все было хорошо!
Очень много вариантов!
Удачи вам!
После более глубокой обработки может быть разумным рассматривать «горизонт» как источник истины и использовать клиент горизонта в узле узлового сервера для конечных точек REST. например http://stackoverflow.com/questions/37402526/rethinkdb-horizon-integration-with-express-access-horizon-data-server-side –
Я только что разработал пример использования Horizon для создания сервиса с использованием RESTful CRUD Интерфейсы API и в реальном времени переносятся: https://github.com/ubergarm/stack-in-a-box –