Ukukhishwa kwe-PostgREST 9.0.0, izengezo zokuguqula isizindalwazi sibe i-RESTful API

Ukukhishwa kwe-PostgREST 9.0.0 kwenzeke, iseva yewebhu esebenza ngokuhlukile ngokusetshenziswa kwesengezo esingasindi ku-PostgreSQL DBMS, ehumusha izinto ezisuka kusizindalwazi esikhona zibe i-RESTful API. Esikhundleni sokwenza imephu idatha ehlobene ibe izinto (ORMs), i-PostgREST idala ukubuka ngokuqondile kusizindalwazi. Uhlangothi lwesizindalwazi luphinde lusingathe ukwenziwa kwe-serial kwezimpendulo ze-JSON, ukuqinisekiswa kwedatha, nokugunyazwa. Ukusebenza kwesistimu kwanele ukucubungula izicelo ezifika kwezingu-2000 ngomzuzwana kuseva evamile. Ikhodi yephrojekthi ibhalwe ku-Haskell futhi isatshalaliswa ngaphansi kwelayisensi ye-MIT.

Isibonelo, usebenzisa kuphela indlela yelungelo lesizindalwazi, unganikeza ukufinyelela kudatha (amathebula, izinhlobo zokubuka, nezinqubo ezigciniwe) nge-HTTP. Kulokhu, asikho isidingo sokufaka ikhodi ukuhumusha okunjalo futhi ngokuvamile umyalo owodwa we-GRANT wanele ukwenza ithebula litholakale nge-REST API. Kungenzeka ukuthi ulungiselele ukufinyelela ngethokheni (JWT) futhi uhlele “i-multitenancy” ngokusebenzisa ukuphepha kwezinga lomugqa oguqukayo (Ukuphepha Kwezinga Lomugqa).

Ngokwezakhiwo, i-PostgREST iphushela esakhiweni esigxile kudatha (I-Data-Oriented Architecture), lapho ama-microservices engazisindisi izifunda ngokwazo, kodwa asebenzise ukufinyelela okukodwa kwedatha (Usendlalelo Sokufinyelela Kwedatha) kulokhu.

Ukukhishwa kwe-PostgREST 9.0.0, izengezo zokuguqula isizindalwazi sibe i-RESTful API

Phakathi kwezinguquko zenguqulo entsha:

  • Amathebula ahlukanisiwe engezwe kunqolobane ye-schema sesitoreji, okwenze kwaba nokwenzeka ngamathebula anjalo ukuthi ashumeke imisebenzi ye-UPSERT kanye ne-INSERT empendulweni Yendawo, isebenzise imibuzo ye-OPTIONS, futhi isebenzise usekelo lwe-OpenAPI.
  • Nge-RPC POST kuvunyelwe ukushayela imisebenzi ngepharamitha eyodwa engashiwongo.
  • Kuvunyelwe ukushayela imisebenzi ngepharamitha eyodwa ye-JSON ngaphandle kweheda ethi “Prefer: params=single-object”.
  • Kuvunyelwe ukulayisha idatha yohlobo lwe-bytea emisebenzini kusetshenziswa imibuzo ethi "Uhlobo Lokuqukethwe: uhlelo lokusebenza/ukusakaza kwe-octet".
  • Ivunyelwe ukulayisha umbhalo emisebenzini kusetshenziswa imibuzo ethi "Uhlobo Lokuqukethwe: umbhalo/okungenalutho".
  • Ukwesekwa okwengeziwe kwezinhlamvu ezibalekayo ngaphakathi kubakaki abakabili, isibonelo, "?col=in.("I-Double\"Quote"), ?col=in.("Emuva\\slash").
  • Ikhono lokuhlunga izinsiza zezinga lokuqala ngokusekelwe kuzihlungi ezakhelwe ngaphakathi (“/projects?select=*,clients!inner(*)&clients.id=eq.12” linikeziwe.
  • I-opharetha ethi "is" ivumela inani "elingaziwa".
  • Ukuhambisana ne-PostgreSQL 14 kuzuziwe futhi ukusekelwa kwe-PostgreSQL 9.5 kunqanyuliwe.

Source: opennet.ru

Engeza amazwana