{"id":104730,"date":"2022-07-29T15:37:11","date_gmt":"2022-07-29T13:37:12","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0"},"modified":"2022-07-29T15:37:11","modified_gmt":"2022-07-29T13:37:12","slug":"vypusk-relyaczionno-grafovoj-subd-edgedb-2-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0","title":{"rendered":"Wydanie relacyjno-grafowej bazy danych EdgeDB 2.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Wydano wydanie DBMS EdgeDB 2.0, kt\u00f3re implementuje relacyjno-grafowy model danych oraz j\u0119zyk zapyta\u0144 EdgeQL, optymalizowane do pracy z z\u0142o\u017conymi danymi hierarchicznymi. Kod napisany jest w j\u0119zykach Python i Rust (parser oraz krytyczne dla wydajno\u015bci cz\u0119\u015bci) i jest udost\u0119pniany na licencji Apache 2.0. Projekt rozwija si\u0119 jako nak\u0142adka na PostgreSQL. Biblioteki klienckie zosta\u0142y przygotowane dla j\u0119zyk\u00f3w Python, Go, Rust oraz TypeScript\/Javascript. Zapewnia narz\u0119dzia wiersza polece\u0144 do zarz\u0105dzania DBMS i interaktywnego wykonywania zapyta\u0144 (REPL).      <\/p>\n<p>Zamiast modelu danych opartego na tabelach, w EdgeDB zastosowano deklaratywny system oparty na typach obiektowych. Zamiast kluczy obcych (foreign key) do okre\u015blania powi\u0105za\u0144 mi\u0119dzy typami stosuje si\u0119 \u0142\u0105czenie przez odwo\u0142ania (jeden obiekt mo\u017ce by\u0107 u\u017cywany jako w\u0142a\u015bciwo\u015b\u0107 innego obiektu).   <\/p>\n<p>     typ Osoba {       wymagane pole nazwa -&gt; str;     }     typ Film {       wymagane pole tytu\u0142 -&gt; str;       wiele link\u00f3w aktorzy -&gt; Osoba;     }      <\/p>\n<p>Aby przyspieszy\u0107 przetwarzanie zapyta\u0144, mog\u0105 by\u0107 stosowane indeksy. Obs\u0142ugiwane s\u0105 r\u00f3wnie\u017c takie funkcje jak \u015bcis\u0142a typizacja w\u0142a\u015bciwo\u015bci, ograniczenia warto\u015bci w\u0142a\u015bciwo\u015bci, w\u0142a\u015bciwo\u015bci obliczeniowe i procedury sk\u0142adowane. Z charakterystyk obiektowego schematu przechowywania EdgeDB, kt\u00f3ry przypomina ORM, mo\u017cna zauwa\u017cy\u0107 mo\u017cliwo\u015b\u0107 mieszania schemat\u00f3w, wi\u0105zania w\u0142a\u015bciwo\u015bci z r\u00f3\u017cnych obiekt\u00f3w oraz zintegrowane wsparcie dla JSON.     <\/p>\n<p>Zapewnione s\u0105 wbudowane narz\u0119dzia do migracji schemat\u00f3w przechowywania \u2014 po zmianie schematu okre\u015blonego w osobnym pliku esdl wystarczy wykona\u0107 polecenie \u201eedgedb migration create\u201d, a system baz danych przeanalizuje r\u00f3\u017cnice w schemacie i w trybie interaktywnym wygeneruje skrypt do przej\u015bcia na nowy schemat. Historia zmian schematu jest automatycznie \u015bledzona.    <\/p>\n<p>Dla formu\u0142owania zapyta\u0144 obs\u0142ugiwany jest zar\u00f3wno j\u0119zyk zapyta\u0144 GraphQL, jak i w\u0142asny j\u0119zyk EdgeDB, stanowi\u0105cy adaptacj\u0119 SQL dla danych hierarchicznych. Zamiast list, wyniki zapytania s\u0105 przedstawiane w postaci zorganizowanej, a zamiast podzapyta\u0144 i operacji JOIN dost\u0119pna jest mo\u017cliwo\u015b\u0107 wskazania jednego zapytania EdgeQL jako wyra\u017cenia wewn\u0105trz innego zapytania. Obs\u0142ugiwane s\u0105 transakcje i p\u0119tle.    <\/p>\n<p>     wybierz Film {       tytu\u0142,       aktorzy: {         nazwa       }     }     filtruj .tytu\u0142 = &#171;Matrix&#187;       wstaw Film {       tytu\u0142 := &#171;Matrix Zmartwychwstania&#187;,       aktorzy := (         wybierz Osoba         filtruj .nazwa w {           &#8216;Keanu Reeves&#8217;,           &#8216;Carrie-Anne Moss&#8217;,           &#8216;Laurence Fishburne&#8217;         }       )     }       dla liczba w {0, 1, 2, 3}     zjednocz (       wybierz { liczba, liczba + 0.5 }     );      <\/p>\n<p>W nowej wersji:  <\/p>\n<ul>\n<li class=\"l\"> Dodano wbudowany interfejs webowy do zarz\u0105dzania baz\u0105 danych, umo\u017cliwiaj\u0105cy przegl\u0105danie i edytowanie danych, wykonywanie zapyta\u0144 EdgeQL oraz analizowanie stosowanej schemy przechowywania. Interfejs uruchamia si\u0119 poleceniem &#171;edgedb ui&#187;, po jego wykonaniu dost\u0119pny jest pod adresem localhost.  <center><img decoding=\"async\" alt=\"Wydanie relacyjno-grafowej bazy danych EdgeDB 2.0\" src=\"\/wp-content\/uploads\/2022\/07\/7568d457e9559e7aafe10f7b526f8cac.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>\n<li class=\"l\"> Zrealizowano wyra\u017cenie &#171;GROUP&#187;, pozwalaj\u0105ce na sekcjonowanie i agregowanie danych oraz wykonywanie grupowania danych wed\u0142ug dowolnych wyra\u017ce\u0144 EdgeQL, analogicznie do grupowania w operacji SELECT.\n<li class=\"l\"> Mo\u017cliwo\u015b\u0107 zarz\u0105dzania dost\u0119pem na poziomie obiekt\u00f3w. Zasady dost\u0119pu s\u0105 okre\u015blane na poziomie schematu przechowywania i pozwalaj\u0105 ograniczy\u0107 mo\u017cliwo\u015b\u0107 u\u017cycia okre\u015blonego zestawu obiekt\u00f3w w operacjach pobierania, wstawiania, usuwania i aktualizacji. Na przyk\u0142ad, mo\u017cna doda\u0107 zasad\u0119, kt\u00f3ra umo\u017cliwia aktualizacj\u0119 publikacji tylko autorowi.\n<li class=\"l\"> Dodano mo\u017cliwo\u015b\u0107 u\u017cywania globalnych zmiennych w schemacie przechowywania. Zosta\u0142a zaproponowana nowa globalna zmienna current_user do powi\u0105zania z u\u017cytkownikiem.\n<li class=\"l\"> Dodano wsparcie dla typ\u00f3w definiuj\u0105cych zakresy warto\u015bci (range).\n<li class=\"l\"> Przygotowano oficjaln\u0105 bibliotek\u0119 klienck\u0105 dla j\u0119zyka Rust.\n<li class=\"l\"> Zosta\u0142 ustabilizowany binarny protok\u00f3\u0142 EdgeDB, kt\u00f3ry umo\u017cliwia jednoczesne przetwarzanie wielu r\u00f3\u017cnych sesji w ramach jednego po\u0142\u0105czenia sieciowego, przekazywanie przez HTTP, korzystanie z globalnych zmiennych oraz lokalnych stan\u00f3w.\n<li class=\"l\"> Dodano wsparcie dla aktywacji przez gniazdo, co pozwala nie trzyma\u0107 serwera przetwarzaj\u0105cego w pami\u0119ci i uruchamia\u0107 go tylko w momencie pr\u00f3by nawi\u0105zania po\u0142\u0105czenia (przydatne dla oszcz\u0119dno\u015bci zasob\u00f3w na systemach deweloper\u00f3w).          <\/ul>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57572\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 2.0, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0439 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044f\u0437\u044b\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 EdgeQL, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 Python \u0438 Rust (\u043f\u0430\u0440\u0441\u0435\u0440 \u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0435 \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0447\u0430\u0441\u0442\u0438) \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 Apache 2.0. \u041f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0435 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430\u0434 PostgreSQL. \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u044b \u0434\u043b\u044f \u044f\u0437\u044b\u043a\u043e\u0432 Python, Go, Rust \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":104731,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-104730","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=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 2.0, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0439 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044f\u0437\u044b\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 EdgeQL, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\" \/>\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\/pl\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\u0412\u044b\u043f\u0443\u0441\u043a \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u043e\u0439 \u0421\u0423\u0411\u0414 EdgeDB 2.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 2.0, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0439 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044f\u0437\u044b\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 EdgeQL, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0\" \/>\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=\"2022-07-29T13:37:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-07-29T13:37:12+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\udd47Wydanie relacyjno-grafowej bazy danych EdgeDB 2.0 | ProHoster","description":"Przedstawiono wydanie bazy danych EdgeDB 2.0, kt\u00f3ra realizuje relacyjno-grafowy model danych oraz j\u0119zyk zapyta\u0144 EdgeQL, zoptymalizowane do pracy z z\u0142o\u017conymi danymi hierarchicznymi.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\u0412\u044b\u043f\u0443\u0441\u043a \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u043e\u0439 \u0421\u0423\u0411\u0414 EdgeDB 2.0 | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 EdgeDB 2.0, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0439 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e-\u0433\u0440\u0430\u0444\u043e\u0432\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044f\u0437\u044b\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 EdgeQL, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-relyaczionno-grafovoj-subd-edgedb-2-0","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":"2022-07-29T13:37:12+00:00","article:modified_time":"2022-07-29T13:37:12+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"104730","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":"2022-07-29 13:38:13","updated":"2022-10-02 04:59:55","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/104730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=104730"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/104730\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/104731"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=104730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=104730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=104730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}