PostgREST, REST API для будь-якої бази даних PostgreSQL, написаної на Haskell

Логотип PostgREST

postgREST є незалежним веб-сервером, який перетворити будь-яку базу даних PostgreSQL безпосередньо в RESTful API. Написано в Haskell, пропонує набагато чистіший, більш відповідний стандартам AP. Тоді як структурні обмеження та дозволи бази даних визначають кінцеві точки та операції 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) і делегує авторизацію інформації про роль, визначеній у базі даних. Це гарантує, що для безпеки існує лише одне декларативне джерело істини.

Маючи справу з базою даних, сервер приймає ідентифікацію поточного користувача, що пройшов аутентифікацію і під час з’єднання він не може зробити нічого, чого не може зробити сам користувач. Інші форми автентифікації можуть бути побудовані в примітиві 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, яке можна отримати, набравши:

докер витягнути постгрест / постгрест

Нарешті, ви можете отримати додаткову інформацію про його конфігурацію з документації на її веб-сайті. Посилання це.


Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.