PostgREST, REST API для любой базы данных PostgreSQL, написанной на Haskell

PostgREST-логотип

postgREST это независимый веб-сервер, который преобразовать любую базу данных PostgreSQL напрямую в RESTful API. Написано на Haskell, предлагает гораздо более чистую и соответствующую стандартам точку доступа. В то время как структурные ограничения и разрешения базы данных определяют конечные точки и операции API.

В документации PostgREST это описывается как «альтернатива ручному программированию CRUD». PostgREST - промежуточное ПО с открытым исходным кодом а API, предоставляемые PostgREST, соответствуют спецификации OpenAPI (ранее известной как спецификация Swagger). Согласно документации, он изначально управляет зависимостями между таблицами вашей базы данных, позволяя с помощью простого запроса REST извлекать данные из соединения между двумя таблицами.

PostgREST будет очень быстрым с временем отклика менее секунды для до 2000 запросов в секунду на уровне бесплатного пользования Heroku.

«Если вы привыкли к серверам, написанным на интерпретируемых языках, приготовьтесь к приятному удивлению производительностью PostgREST», - говорит команда.

По мнению команды, на эту скорость влияют три фактора:.

  1. Во-первых, сервер написан на Haskell с использованием HTTP-сервера Warp (компилируемый язык).
  2. Тогда, делегировать базе данных как можно больше вычислений, включая сериализацию ответов JSON непосредственно в SQL, проверку данных и т. д.
  3. Наконец, использовать библиотеку Hasql для поддержки пула подключений к базе данных, двоичный протокол PostgreSQL, и остается без сохранения состояния, чтобы обеспечить горизонтальное масштабирование.

postgREST обрабатывает аутентификацию (через JSON Web Tokens) и делегирует авторизацию информации о ролях, определенной в базе данных. Это гарантирует, что существует только один декларативный источник истины для безопасности.

При работе с базой данных сервер предполагает личность аутентифицированного в данный момент пользователя и во время соединения он не может делать то, что не может делать сам пользователь. Другие формы аутентификации могут быть созданы в примитиве JWT.

С другой стороны когда дело доходит до целостности данных, ПостгREST вместо того, чтобы полагаться на объектно-реляционный сопоставитель (ORM) и настраиваемая императивная кодировка, эта система накладывает декларативные ограничения непосредственно на вашу базу данных.

Следовательно, ни одно приложение не может нанести вред вашим данным (включая ваш сервер API). PostgREST предоставляет HTTP-интерфейс с различными резервными копиями, чтобы избежать проблем, включая применение запросов PUT. Другими словами, здесь нет ORM.

Создание новых представлений происходит в SQL с известными последствиями для производительности. В PostgREST замечательно то, что администратор базы данных может создавать API с нуля без специального программирования.

Для некоторых PostgREST также является интересной альтернативой базе данных NoSQL или GraphQL. предоставляется изначально в API, если вам нужно поддерживать реляционную модель. К сожалению, это промежуточное программное обеспечение недоступно в качестве стандартного в репозиториях пакетов крупных дистрибутивов Linux.

Как установить PostgREST в Linux?

Версия 6.0.2 была выпущена в августе прошлого года с новыми дополнениями и некоторыми изменениями. Эту версию можно получить с github.

Ссылка такая.

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

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-linux-x64-static.tar.xz

Теперь им просто нужно распаковать пакет с помощью следующей команды:

tar Jxf postgrest-v6.0.2-linux-x64-static.tar.xz

А в частном случае тех, кто использует 64-битную версию Ubuntu:

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntu.tar.xz
tar Jxf postgrest-v6.0.2-ubuntu.tar.xz

Или для тех, кто использует 32-битную версию Ubuntu

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntui386.tar.xz
tar Jxf postgrest-v6.0.2-ubuntui386.tar.xz

И они могут работать с:

./postgrest --help

Таким же образом готовится образ Docker, его можно получить, набрав:

докер тянуть postgrest / postgrest

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


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.