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.

С другой стороны когда дело доходит до целостности данных, PostgREST вместо того, чтобы полагаться на объектно-реляционный сопоставитель (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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.