Kutulutsidwa kwa PostgREST 9.0.0, zowonjezera zosinthira nkhokwe kukhala RESTful API

PostgREST 9.0.0 inatulutsidwa, seva yapaintaneti yomwe ikugwira ntchito padera ndikukhazikitsa chowonjezera chopepuka ku PostgreSQL DBMS, kumasulira zinthu kuchokera ku database yomwe ilipo kukhala RESTful API. M'malo mopanga mapu okhudzana ndi zinthu (ORMs), PostgREST imapanga malingaliro mwachindunji mu nkhokwe. Mbali ya database imayang'aniranso kusanja kwa mayankho a JSON, kutsimikizika kwa data, ndi kuvomereza. Kugwira ntchito kwadongosolo ndikokwanira kukonza zopempha za 2000 pa sekondi imodzi pa seva wamba. Khodi ya polojekitiyi idalembedwa ku Haskell ndikugawidwa pansi pa layisensi ya MIT.

Mwachitsanzo, pogwiritsa ntchito njira yokhayo yopezera mwayi, mutha kupereka mwayi wopeza deta (matebulo, mitundu yowonera, ndi njira zosungidwa) pa HTTP. Pankhaniyi, palibe chifukwa cholembera kumasulira koteroko ndipo kawirikawiri lamulo limodzi la GRANT ndilokwanira kuti tebulo lipezeke kudzera pa REST API. Ndizotheka kukonza mwayi wofikira ndi tokeni (JWT) ndikukonza "multitenancy" pogwiritsa ntchito chitetezo chamizere yosinthika (Row Level Security).

Zomangamanga, PostgREST imakankhira kumamangidwe opangidwa ndi data (Data-Oriented Architecture), pomwe ma microservices sadzipulumutsa okha, koma amagwiritsa ntchito mwayi umodzi wopeza deta (Data Access Layer) pa izi.

Kutulutsidwa kwa PostgREST 9.0.0, zowonjezera zosinthira nkhokwe kukhala RESTful API

Zina mwa zosintha mu mtundu watsopano:

  • Matebulo ogawidwa adawonjezedwa ku cache yosungirako schema, zomwe zidapangitsa kuti matebulo oterowo akhazikike UPSERT ndi INSERT ntchito poyankhira Malo, kuyankha mafunso a OPTIONS, ndikukhazikitsa chithandizo cha OpenAPI.
  • Kudzera pa RPC POST imaloledwa kuyimba ntchito ndi gawo limodzi losatchulidwa.
  • Zimaloledwa kuyimba magwiridwe antchito ndi gawo limodzi la JSON popanda mutu wa "Prefer: params=single-object".
  • Zimaloledwa kuyika deta yamtundu wa byte muzochita pogwiritsa ntchito zopempha ndi "Content-Type: application/octet-stream".
  • Amaloledwa kuyika mawu muzochita pogwiritsa ntchito mafunso okhala ndi "Content-Type: text/plain".
  • Zowonjezera zothandizira zilembo zothawa m'mabulaketi awiri, mwachitsanzo, "?col=in.("Kawiri\"Quote"), ?col=in.("Back\\slash")".
  • Kutha kusefa zosefera zamtundu woyamba kutengera zosefera zomangidwa (“/projects?select=*,clients!inner(*)&clients.id=eq.12” zaperekedwa.
  • Wogwiritsa "ndi" amalola mtengo "wosadziwika".
  • Kugwirizana ndi PostgreSQL 14 kwakwaniritsidwa ndipo kuthandizira kwa PostgreSQL 9.5 kwathetsedwa.

Source: opennet.ru

Kuwonjezera ndemanga