Релиз на 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