PostgREST 9.0.0 ၏ထုတ်ဝေမှု၊ ဒေတာဘေ့စ်ကို RESTful API အဖြစ်ပြောင်းလဲရန်အတွက် အပိုပရိုဂရမ်များ

PostgREST 9.0.0 သည် PostgreSQL DBMS သို့ ပေါ့ပါးသော အပိုပရိုဂရမ်တစ်ခုအား အကောင်အထည်ဖော်မှုဖြင့် သီးခြားလည်ပတ်နေသော ဝဘ်ဆာဗာတစ်ခုဖြစ်ပြီး ရှိပြီးသားဒေတာဘေ့စ်မှ အရာဝတ္ထုများကို RESTful API သို့ ဘာသာပြန်ဆိုခြင်းဖြစ်သည်။ ဆက်စပ်ဒေတာကို အရာဝတ္ထုများ (ORMs) အဖြစ် ပုံဖော်မည့်အစား PostgREST သည် ဒေတာဘေ့စ်အတွင်း ကြည့်ရှုမှုများကို တိုက်ရိုက်ဖန်တီးပေးပါသည်။ ဒေတာဘေ့စ်ဘက်တွင် JSON တုံ့ပြန်မှုများ၏ နံပါတ်စဉ်သတ်မှတ်ခြင်း၊ ဒေတာအတည်ပြုခြင်းနှင့် ခွင့်ပြုချက်ပေးခြင်းတို့ကိုလည်း ဆောင်ရွက်ပေးပါသည်။ ပုံမှန်ဆာဗာတစ်ခုတွင် တစ်စက္ကန့်လျှင် တောင်းဆိုမှု 2000 အထိ လုပ်ဆောင်ရန် စနစ်စွမ်းဆောင်ရည်သည် လုံလောက်ပါသည်။ ပရောဂျက်ကုဒ်ကို Haskell ဖြင့် ရေးသားထားပြီး MIT လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

ဥပမာအားဖြင့်၊ ဒေတာဘေ့စ်ဆိုင်ရာ အထူးအခွင့်အရေး ယန္တရားကိုသာ အသုံးပြု၍ HTTP မှတစ်ဆင့် ဒေတာ (ဇယားများ၊ ကြည့်ရှုမှု အမျိုးအစားများနှင့် သိမ်းဆည်းထားသည့် လုပ်ထုံးလုပ်နည်းများ) ကို ဝင်ရောက်ခွင့် ပေးနိုင်ပါသည်။ ဤကိစ္စတွင်၊ ထိုသို့သောဘာသာပြန်ဆိုချက်ကို ကုဒ်လုပ်ရန်မလိုအပ်ဘဲ များသောအားဖြင့် GRANT အမိန့်တစ်ခုသည် REST API မှတစ်ဆင့် ဇယားကိုရရှိနိုင်စေရန် လုံလောက်ပါသည်။ တိုကင် (JWT) ဖြင့် ဝင်ရောက်ခွင့်ကို သတ်မှတ်ပြီး ပြောင်းလဲနေသော အတန်းအဆင့် လုံခြုံရေး (Row Level Security) ကို အသုံးပြုခြင်းဖြင့် “များပြားခြင်း” ကို စုစည်းရန် ဖြစ်နိုင်သည်။

ဗိသုကာအရ၊ PostgREST သည် ဒေတာဦးတည်သော ဗိသုကာပညာ (Data-Oriented Architecture) သို့ တွန်းပို့သည်၊ ၎င်းအတွက် microservices များသည် ၎င်းတို့ကိုယ်တိုင် ပြည်နယ်များကို မသိမ်းဆည်းဘဲ ဒေတာဝင်ရောက်ခွင့်တစ်ခုတည်း (Data Access Layer) ကို အသုံးပြုပါသည်။

PostgREST 9.0.0 ၏ထုတ်ဝေမှု၊ ဒေတာဘေ့စ်ကို RESTful API အဖြစ်ပြောင်းလဲရန်အတွက် အပိုပရိုဂရမ်များ

ဗားရှင်းအသစ်တွင် ပြောင်းလဲမှုများထဲတွင်-

  • ပိုင်းခြားထားသော ဇယားများကို သိုလှောင်မှု အစီအစဉ် ကက်ရှ်သို့ ပေါင်းထည့်ခဲ့ပြီး၊ ၎င်းသည် တည်နေရာ တုံ့ပြန်မှုတွင် UPSERT နှင့် INSERT လုပ်ဆောင်ချက်များကို ထည့်သွင်းရန်၊ OPTIONS queries များကို လုပ်ဆောင်ရန်နှင့် OpenAPI ပံ့ပိုးမှုကို အကောင်အထည်ဖော်ရန် ဖြစ်နိုင်ချေရှိသည်။
  • RPC POST မှတစ်ဆင့် ၎င်းသည် အမည်မဖော်လိုသည့် ကန့်သတ်ဘောင်တစ်ခုဖြင့် လုပ်ဆောင်ချက်များကို ခေါ်ဆိုရန် ခွင့်ပြုထားသည်။
  • “Prefer: params=single-object” ခေါင်းစီးမပါဘဲ JSON ဘောင်တစ်ခုဖြင့် လုပ်ဆောင်ချက်များကို ခေါ်ဆိုရန် ခွင့်ပြုထားသည်။
  • "အကြောင်းအရာ-အမျိုးအစား- အပလီကေးရှင်း/octet-stream" ဖြင့် တောင်းဆိုမှုများကို အသုံးပြု၍ အမျိုးအစား bytea ၏ ဒေတာကို လုပ်ဆောင်ချက်များတွင် တင်ရန် ခွင့်ပြုထားသည်။
  • "အကြောင်းအရာ-အမျိုးအစား- စာသား/လွင်ပြင်" ပါသော မေးခွန်းများကို အသုံးပြု၍ လုပ်ဆောင်ချက်များတွင် စာသားတင်ရန် ခွင့်ပြုထားသည်။
  • ဥပမာ၊ "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")" အတွင်းရှိ အက္ခရာများကို ကွင်းပိတ်များအတွင်းမှ လွတ်မြောက်စေရန် ပံ့ပိုးမှု ထပ်လောင်းထည့်ထားပါသည်။
  • built-in စစ်ထုတ်မှုများအပေါ် အခြေခံ၍ ပထမအဆင့် အရင်းအမြစ်များကို စစ်ထုတ်နိုင်စွမ်း (“/projects?select=*,clients!inner(*)&clients.id=eq.12” ကို ပံ့ပိုးပေးထားပါသည်။
  • "is" အော်ပရေတာသည် တန်ဖိုး "အမည်မသိ" ကို ခွင့်ပြုသည်။
  • PostgreSQL 14 နှင့် လိုက်ဖက်ညီမှု ရရှိပြီး PostgreSQL 9.5 အတွက် ပံ့ပိုးမှုကို ရပ်ဆိုင်းလိုက်ပါပြီ။

source: opennet.ru

မှတ်ချက် Add