Нашри PostgREST 9.0.0, иловаҳо барои табдил додани пойгоҳи додаҳо ба API RESTful

Нашри PostgREST 9.0.0 сурат гирифт, ки веб-сервери алоҳида амалкунанда бо татбиқи иловаи сабук ба DBMS PostgreSQL, тарҷумаи объектҳоро аз пойгоҳи додаҳои мавҷуда ба RESTful API. Ба ҷои харитаи додаҳои релятсионӣ ба объектҳо (ORMs), PostgREST мустақиман дар пойгоҳи додаҳо манзараҳо эҷод мекунад. Ҷониби пойгоҳи додаҳо инчунин сериализатсияи ҷавобҳои JSON, тасдиқи маълумот ва авторизатсияро идора мекунад. Фаъолияти система барои коркарди то 2000 дархост дар як сервер дар як сония кифоя аст. Рамзи лоиҳа дар Haskell навишта шудааст ва таҳти иҷозатномаи MIT паҳн карда мешавад.

Масалан, бо истифода аз танҳо механизми имтиёзҳои махзани маълумот, шумо метавонед дастрасӣ ба додаҳо (ҷадвалҳо, намудҳои намоиш ва расмиёти захирашуда) тавассути HTTP диҳед. Дар ин ҳолат, зарурати рамзгузории чунин тарҷума вуҷуд надорад ва одатан як фармони GRANT барои дастрас кардани ҷадвал тавассути REST API кифоя аст. Тавассути истифодаи амнияти сатри динамикӣ (Row Level Security) дастрасиро тавассути нишона (JWT) танзим кардан ва "бисёрсолона" ташкил кардан мумкин аст.

Аз ҷиҳати меъморӣ, PostgREST ба меъмории ба додаҳо нигаронидашуда (Architecture-Data Oriented Architecture) тела медиҳад, ки дар он микросервисҳо худи давлатҳоро захира намекунанд, балки барои ин дастрасии ягона ба додаҳоро (Қабати дастрасии маълумот) истифода мебаранд.

Нашри PostgREST 9.0.0, иловаҳо барои табдил додани пойгоҳи додаҳо ба API RESTful

Дар байни тағйирот дар версияи нав:

  • Ҷадвалҳои тақсимшуда ба кэши схемаи нигоҳдорӣ илова карда шуданд, ки ин имкон дод, ки чунин ҷадвалҳо амалиёти UPSERT ва INSERT-ро дар ҷавоби Ҷойгир ҷойгир кунанд, дархостҳои OPTIONS-ро иҷро кунанд ва дастгирии OpenAPI-ро амалӣ кунанд.
  • Тавассути RPC POST иҷозат дода мешавад, ки функсияҳоро бо як параметри номаълум даъват кунед.
  • Иҷозат дода мешавад, ки функсияҳоро бо як параметри JSON бидуни сарлавҳаи "Бартарӣ: params = як объект" даъват кунед.
  • Ба функсияҳо бо истифода аз дархостҳо бо "Content-Type: application/octet-stream" бор кардани маълумотҳои навъи байт иҷозат дода мешавад.
  • Иҷозат дода мешавад, ки матн ба функсияҳо бо истифода аз дархостҳо бо "Type Content: text/plain" бор карда шавад.
  • Дастгирии иловашуда барои фирор кардани аломатҳо дар дохили қавсҳои дукарата, масалан, "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
  • Имконияти филтр кардани захираҳои сатҳи аввал дар асоси филтрҳои дарунсохт (“/projects?select=*,clients!inner(*)&clients.id=eq.12” таъмин карда шудааст.
  • Оператори "is" ба арзиши "номаълум" иҷозат медиҳад.
  • Мутобиқат бо PostgreSQL 14 ба даст омад ва дастгирии PostgreSQL 9.5 қатъ карда шуд.

Манбаъ: opennet.ru

Илова Эзоҳ