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.
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