{"id":102410,"date":"2021-11-28T09:36:38","date_gmt":"2021-11-28T07:36:39","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-postgrest-9-0-0-nadstrojki-dlya-prevrashheniya-bd-v-api-restful"},"modified":"2021-11-28T09:36:38","modified_gmt":"2021-11-28T07:36:39","slug":"reliz-postgrest-9-0-0-nadstrojki-dlya-prevrashheniya-bd-v-api-restful","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/reliz-postgrest-9-0-0-nadstrojki-dlya-prevrashheniya-bd-v-api-restful","title":{"rendered":"PostgREST 9.0.0 ver\u00f6ffentlicht, ein Tool, um Datenbanken in RESTful APIs umzuwandeln","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Die Ver\u00f6ffentlichung von PostgREST 9.0.0, einem eigenst\u00e4ndigen Webserver mit einer einfachen Erweiterung f\u00fcr das PostgreSQL-Datenbanksystem, ist erfolgt, die Objekte aus einer bestehenden Datenbank in ein RESTful API umwandelt. Anstatt relationale Daten in Objekte (ORM) abzubilden, werden in PostgREST die Ansichten direkt in der Datenbank erstellt. Die Serialisierung von JSON-Antworten, die Datenvalidierung und die Autorisierung erfolgen ebenfalls auf Datenbankseite. Die Systemleistung reicht aus, um bis zu 2000 Anfragen pro Sekunde zu verarbeiten. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/server\/dts-newyork\/\"   title=\"Server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2689\">Server<\/a>Der Projektcode ist in Haskell geschrieben und steht unter der MIT-Lizenz.       <\/p>\n<p>Zum Beispiel kann man durch die Verwendung des Berechtigungsmechanismus in der Datenbank den Zugriff auf Daten (Tabellen, Ansichten und gespeicherte Prozeduren) \u00fcber das HTTP-Protokoll gew\u00e4hren. Dabei ist keine Kodierung dieser \u00dcbertragung erforderlich, und in der Regel gen\u00fcgt ein GRANT-Befehl, um die Tabelle \u00fcber das REST API verf\u00fcgbar zu machen. Es besteht die M\u00f6glichkeit, den Zugriff \u00fcber ein Token (JWT) einzurichten und &#171;Multitenancy&#187; durch den Einsatz von dynamischer Sicherheit auf Zeilenebene (Row Level Security) zu organisieren.    <\/p>\n<p>Architektonisch dr\u00e4ngt PostgREST zu einer datenorientierten Architektur (Data-Oriented Architecture), bei der Mikroservices ihren Zustand nicht selbst speichern, sondern stattdessen einen einheitlichen Datenzugriff (Data Access Layer) nutzen.      <center><img decoding=\"async\" alt=\"PostgREST 9.0.0 ver\u00f6ffentlicht, ein Tool, um Datenbanken in RESTful APIs umzuwandeln\" src=\"\/wp-content\/uploads\/2021\/11\/9065ad855f12bb16ed2b09369e5b46c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Zu den Neuerungen in der neuen Version geh\u00f6ren:  <\/p>\n<ul>\n<li class=\"l\"> In den Speicher-Schema-Caches wurden partitionierte Tabellen hinzugef\u00fcgt, was es erm\u00f6glicht, f\u00fcr solche Tabellen UPSERT- und INSERT-Operationen in der Location-Antwort einzubetten, OPTIONS-Anfragen auszuf\u00fchren und die Unterst\u00fctzung von OpenAPI zu implementieren.\n<li class=\"l\"> \u00dcber RPC POST ist es erlaubt, Funktionen mit einem nicht benannten Parameter aufzurufen.\n<li class=\"l\"> Es ist erlaubt, Funktionen mit einem JSON-Parameter ohne den Header &#171;Prefer: params=single-object&#187; aufzurufen.\n<li class=\"l\"> Es ist erlaubt, in Funktionen Daten vom Typ bytea zu laden, indem Anfragen mit &#171;Content-Type: application\/octet-stream&#187; verwendet werden.\n<li class=\"l\"> Es ist erlaubt, in Funktionen Text zu laden, indem Anfragen mit &#171;Content-Type: text\/plain&#187; verwendet werden.\n<li class=\"l\"> Die Unterst\u00fctzung f\u00fcr das Escaping von Zeichen innerhalb doppelter Klammern wurde hinzugef\u00fcgt, z. B. &#171;?col=in.(&#171;Double&#092;&#187;Quote&#187;), ?col=in.(&#171;Back&#092;&#092;slash&#187;)&#187;.\n<li class=\"l\"> Es wurde die M\u00f6glichkeit zur Filterung von Ressourcen der ersten Ebene basierend auf eingebetteten Filtern bereitgestellt (&#171; \/projects?select=*,clients!inner(*)&amp;clients.id=eq.12&#187;.\n<li class=\"l\"> Im Operator &#171;is&#187; ist die Verwendung des Werts &#171;unknown&#187; erlaubt.\n<li class=\"l\"> Die Kompatibilit\u00e4t mit PostgreSQL 14 wurde sichergestellt und die Unterst\u00fctzung f\u00fcr PostgreSQL 9.5 eingestellt.    <\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=56245\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 PostgREST 9.0.0, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043b\u0435\u0433\u043a\u043e\u0439 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a \u0421\u0423\u0411\u0414 PostgreSQL, \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 RESTful API. \u0412\u043c\u0435\u0441\u0442\u043e \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u044b (ORM) \u0432 PostgREST \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0411\u0414 \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0442\u0432\u0435\u0442\u043e\u0432 JSON, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f. \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":102411,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-102410","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 PostgREST 9.0.0, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043b\u0435\u0433\u043a\u043e\u0439 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a \u0421\u0423\u0411\u0414 PostgreSQL, \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 RESTful API.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/news\/reliz-postgrest-9-0-0-nadstrojki-dlya-prevrashheniya-bd-v-api-restful\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 PostgREST 9.0.0, \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0411\u0414 \u0432 API RESTful | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 PostgREST 9.0.0, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043b\u0435\u0433\u043a\u043e\u0439 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a \u0421\u0423\u0411\u0414 PostgreSQL, \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 RESTful API.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/reliz-postgrest-9-0-0-nadstrojki-dlya-prevrashheniya-bd-v-api-restful\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-11-28T07:36:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-11-28T07:36:39+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Ver\u00f6ffentlichung von PostgREST 9.0.0, einer Schicht zur Umwandlung von Datenbanken in RESTful APIs | ProHoster","description":"Die Ver\u00f6ffentlichung von PostgREST 9.0.0 fand statt, einem eigenst\u00e4ndig arbeitenden Webserver mit einer Implementierung einer leichten Schicht f\u00fcr das DBMS PostgreSQL, der Objekte aus einer vorhandenen Datenbank in eine RESTful API \u00fcbertr\u00e4gt.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/reliz-postgrest-9-0-0-nadstrojki-dlya-prevrashheniya-bd-v-api-restful","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 PostgREST 9.0.0, \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0411\u0414 \u0432 API RESTful | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 PostgREST 9.0.0, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043b\u0435\u0433\u043a\u043e\u0439 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a \u0421\u0423\u0411\u0414 PostgreSQL, \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 RESTful API.","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/reliz-postgrest-9-0-0-nadstrojki-dlya-prevrashheniya-bd-v-api-restful","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2021-11-28T07:36:39+00:00","article:modified_time":"2021-11-28T07:36:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"102410","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-11-28 07:37:37","updated":"2026-02-09 21:39:48","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/102410","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=102410"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/102410\/revisions"}],"predecessor-version":[{"id":159969,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/102410\/revisions\/159969"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/102411"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=102410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=102410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=102410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}