Релиз PostgREST 9.0.0, разширения за превръщане на БД в RESTful API

Състоя се релизът на PostgREST 9.0.0, самостоятелен уеб сървър с реализация на лесно разширение към СУБД PostgreSQL, което трансформира обектите от съществуващата база данни в RESTful API. Вместо да отразява релационни данни в обекти (ORM), в PostgREST представленията се създават директно в базата данни. Сериализацията на JSON отговорите, проверката на данните и авторизацията се извършват на нивото на базата данни. Производителността на системата е достатъчна за обработка на до 2000 заявки в секунда при типични условия. сървър. Кодът на проекта е написан на езика Haskell и се разпространява под MIT лиценз.

Например, използвайки само механизма за привилегии в базата данни, може да се предостави достъп до данни (таблици, изгледи и съхранявани процедури) по HTTP протокол. Не е необходимо да се кодира такава транслация и обикновено е достатъчна една команда GRANT, за да се направи таблицата достъпна чрез REST API. Има възможност за настройка на достъп по токен (JWT) и организиране на "multitenancy" чрез използване на динамична сигурност на ниво ред (Row Level Security).

Архитектурното проектиране на PostgREST насочва към данно-ориентирана архитектура (Data-Oriented Architecture), където микросервизите не запазват състояние сами, а използват единичен достъп до данните (Data Access Layer).

Релиз PostgREST 9.0.0, разширения за превръщане на БД в RESTful API

Сред измененията в новата версия:

  • В кеш схемите за съхранение са добавени партиционирани таблици, което позволи за подобни таблици да бъдат вградени операции UPSERT и INSERT в отговора Location, да се извършват заявки OPTIONS и да се реализира поддръжка на OpenAPI.
  • Чрез RPC POST е разрешено извикването на функции с един неназован параметър.
  • Разрешено е извикването на функции с един JSON параметър без заглавие "Prefer: params=single-object."
  • Разрешено е да се зареждат данни с тип bytea в функции, използвайки заявки с "Content-Type: application/octet-stream."
  • Разрешено е да се зарежда текст в функции, използвайки заявки с "Content-Type: text/plain."
  • Добавена е поддръжка за екраниране на символи в двойни скоби, например, "?col=in.("Double\"Quote"), ?col=in.("Back\\slash").
  • Предоставена е възможност за филтриране на ресурси от първо ниво на базата на вградени филтри ("/projects?select=*,clients!inner(*)&clients.id=eq.12").
  • В операторът "is" е разрешено използването на стойността "unknown."
  • Обезпечена е съвместимост с PostgreSQL 14 и е прекратена поддръжката на PostgreSQL 9.5.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster