PostgREST 9.0.0 чыгарылышы, маалымат базасын RESTful APIге айландыруу үчүн кошумчалар

PostgREST 9.0.0 чыгарылды, өзүнчө иштеп жаткан веб-сервер, PostgreSQL DBMS үчүн жеңил кошумчаны ишке ашыруу, объекттерди учурдагы маалымат базасынан RESTful APIге которуу. Реляциялык маалыматтарды объекттерге (ORMs) салыштыруунун ордуна, PostgREST түздөн-түз маалымат базасында көрүнүштөрдү түзөт. Маалыматтар базасынын тарабы ошондой эле JSON жоопторун сериялаштыруу, маалыматтарды текшерүү жана авторизациялоону колго алат. Системанын иштеши кадимки серверде секундасына 2000 суроону иштетүү үчүн жетиштүү. Долбоордун коду Хаскеллде жазылган жана MIT лицензиясы боюнча таратылат.

Мисалы, бир гана маалымат базасынын артыкчылык механизмин колдонуп, HTTP аркылуу берилиштерге (таблицалар, көрүү түрлөрү жана сакталган процедуралар) кирүү мүмкүнчүлүгүн бере аласыз. Бул учурда, мындай котормону коддоонун кереги жок жана адатта REST API аркылуу таблицаны жеткиликтүү кылуу үчүн бир GRANT буйругу жетиштүү. Токен (JWT) боюнча кирүү мүмкүнчүлүгүн конфигурациялоого жана динамикалык катар деңгээлиндеги коопсуздукту (Row Level Security) колдонуу аркылуу "көп жылдыкты" уюштурууга болот.

Архитектуралык жактан PostgREST берилиштерге багытталган архитектурага (Data-Oriented Architecture) карай түртөт, мында микросервистер штаттарды өздөрү сакташпайт, бирок бул үчүн маалыматтарга бирдиктүү мүмкүндүктү (Data Access Layer) колдонушат.

PostgREST 9.0.0 чыгарылышы, маалымат базасын RESTful APIге айландыруу үчүн кошумчалар

Жаңы версиядагы өзгөртүүлөрдүн арасында:

  • Бөлүнгөн таблицалар сактоо схемасынын кэшине кошулду, бул мындай таблицаларга Жайгашкан жер жоопуна UPSERT жана INSERT операцияларын киргизүүгө, OPTIONS сурамдарын аткарууга жана OpenAPI колдоосун ишке ашырууга мүмкүндүк берди.
  • RPC POST аркылуу бир аты аталбаган параметр менен функцияларды чакырууга жол берилет.
  • Функцияларды бир JSON параметри менен “Prefer: params=single-object” аталышы жок чакырууга уруксат берилет.
  • “Content-Type: application/octet-stream” менен суроо-талаптарды колдонуу менен байт тибиндеги маалыматтарды функцияларга жүктөөгө уруксат берилет.
  • "Content-Type: text/plain" менен сурамдарды колдонуу менен функцияларга текстти жүктөөгө уруксат берилет.
  • Кош кашаанын ичиндеги качуучу символдор үчүн колдоо кошулду, мисалы, "?col=in.("Double\"Цитата"), ?col=in.("Артка\\саш")".
  • Камтылган чыпкалардын негизинде биринчи деңгээлдеги ресурстарды чыпкалоо мүмкүнчүлүгү берилген (“/projects?select=*,clients!inner(*)&clients.id=eq.12”.
  • "is" оператору "белгисиз" маанисин берет.
  • PostgreSQL 14 менен шайкештикке жетишилди жана PostgreSQL 9.5ти колдоо токтотулду.

Source: opennet.ru

Комментарий кошуу