PostgREST 9.0.0-ın buraxılışı, verilənlər bazasını RESTful API-yə çevirmək üçün əlavələr

PostgREST 9.0.0, mövcud verilənlər bazasından obyektləri RESTful API-yə çevirən PostgreSQL DBMS-ə yüngül əlavənin tətbiqi ilə ayrıca işləyən veb server buraxıldı. Əlaqəli məlumatları obyektlərə (ORMs) uyğunlaşdırmaq əvəzinə, PostgREST birbaşa verilənlər bazasında görünüşlər yaradır. Verilənlər bazası tərəfi həmçinin JSON cavablarının seriallaşdırılması, məlumatların yoxlanılması və avtorizasiya ilə məşğul olur. Sistem performansı tipik bir serverdə saniyədə 2000 sorğuya qədər işləmək üçün kifayətdir. Layihə kodu Haskell dilində yazılmışdır və MIT lisenziyası altında paylanmışdır.

Məsələn, yalnız verilənlər bazası imtiyaz mexanizmindən istifadə edərək, HTTP üzərindən verilənlərə (cədvəllər, görünüş növləri və saxlanılan prosedurlar) giriş icazəsi verə bilərsiniz. Bu halda, belə tərcümənin kodlaşdırılmasına ehtiyac yoxdur və cədvəli REST API vasitəsilə əlçatan etmək üçün adətən bir GRANT əmri kifayətdir. Token (JWT) ilə girişi konfiqurasiya etmək və dinamik sıra səviyyəli təhlükəsizlikdən (Row Level Security) istifadə etməklə “çoxsaylılığı” təşkil etmək mümkündür.

Arxitektura baxımından PostgREST məlumat yönümlü arxitekturaya (Data-Oriented Architecture) doğru irəliləyir, burada mikroservislər dövlətləri özləri saxlamır, lakin bunun üçün məlumatlara vahid girişdən (Data Access Layer) istifadə edirlər.

PostgREST 9.0.0-ın buraxılışı, verilənlər bazasını RESTful API-yə çevirmək üçün əlavələr

Yeni versiyada dəyişikliklər arasında:

  • Bölmələrə ayrılmış cədvəllər yaddaş sxeminin keş yaddaşına əlavə edildi ki, bu da belə cədvəllərin Məkan cavabında UPSERT və INSERT əməliyyatlarını yerləşdirməyə, OPTIONS sorğularını yerinə yetirməyə və OpenAPI dəstəyini həyata keçirməyə imkan verdi.
  • RPC POST vasitəsilə bir adsız parametrlə funksiyaları çağırmağa icazə verilir.
  • Bir JSON parametri ilə funksiyaları “Tercih edin: params=tək obyekt” başlığı olmadan çağırmağa icazə verilir.
  • “Content-Type: application/octet-stream” ilə sorğulardan istifadə etməklə bytea tipli məlumatların funksiyalara yüklənməsinə icazə verilir.
  • "Məzmun növü: mətn/düz" ilə sorğulardan istifadə edərək mətni funksiyalara yükləməyə icazə verilir.
  • Qoşa mötərizədə qaçan simvollar üçün dəstək əlavə edildi, məsələn, "?col=in.("Double\"Quote"), ?col=in.("Geri\\slash")".
  • Daxili filtrlərə (“/projects?select=*,clients!inner(*)&clients.id=eq.12”) əsaslanan birinci səviyyəli resursları filtrləmək imkanı təmin edilmişdir.
  • "is" operatoru "naməlum" dəyərinə icazə verir.
  • PostgreSQL 14 ilə uyğunluq əldə edildi və PostgreSQL 9.5 üçün dəstək dayandırıldı.

Mənbə: opennet.ru

Добавить комментарий