{"id":1985,"date":"2022-07-02T21:32:50","date_gmt":"2022-07-02T16:32:50","guid":{"rendered":"https:\/\/www.edopedia.com\/blog\/?p=1985"},"modified":"2022-07-06T12:20:26","modified_gmt":"2022-07-06T07:20:26","slug":"schemats-tutorial","status":"publish","type":"post","link":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/","title":{"rendered":"Schemats Tutorial and Ultimate Guide For Beginners"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction: What is Schemats and Why Should You Care?<\/h2>\n\n\n\n<p><strong>Schemats<\/strong> is a tool that helps you automatically generate TypeScript interface definitions from SQL database schema. It completely supports popular relational database management systems (RDBMS) like MySQL and PostgreSQL.<\/p>\n\n\n\n<p>This <strong>Schemats Tutorial<\/strong> will help you get started and understand the basics of this amazing tool in no time.<\/p>\n\n\n\n<p>Let&#8217;s say you have a database schema of the <strong>&#8220;Users&#8221;<\/strong> table something like this:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Name<\/th><th>Type<\/th><\/tr><\/thead><tbody><tr><td>id<\/td><td>SERIAL<\/td><\/tr><tr><td>email<\/td><td>VARCHAR<\/td><\/tr><tr><td>password<\/td><td>VARCHAR<\/td><\/tr><tr><td>last_seen<\/td><td>TIMESTAMP<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Now, Schemats can automatically generate the following TypesScript Interface for you.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"typescript\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">interface Users {\n    id: number;\n    email: string;\n    password: string;\n    last_seen: Date;\n}<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">How to Install Schemats?<\/h2>\n\n\n\n<p>The Schemats library is available on npm (Node Package Manager). So, you can easily install it by executing the below-mentioned command in your terminal.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">npm install -g schemats<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Generate TS Interface Definition from Schema<\/h2>\n\n\n\n<p>Let&#8217;s say you have a database named &#8220;company&#8221; with a table &#8220;users&#8221;. Now, to generate a TypeScript interface definition from your schema, simply run the below command.<\/p>\n\n\n\n<p><strong>For PostgreSQL, use this command:<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">schemats generate -c postgres:\/\/postgres@localhost\/company -t users -o company.ts<\/pre>\n\n\n\n<p><strong>For MySQL, use this command:<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">schemats generate -c mysql:\/\/mysql@localhost\/company -t users -o company.ts<\/pre>\n\n\n\n<p>These commands will generate the typescript interfaces for the <strong>&#8220;company&#8221;<\/strong> database with table <strong>&#8220;users&#8221;<\/strong> inside a new file called <strong>&#8220;company.ts&#8221;<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Using schemats.json config file<\/h2>\n\n\n\n<p>Schemats is well equipped to read configuration options from a JSON config file. By default, this config file is known as <strong>&#8220;schemats.json&#8221;<\/strong>. So, if you don&#8217;t want to provide the command-line parameters as we did in our previous example, you can instead define the configurations inside the config file.<\/p>\n\n\n\n<p>For example, add the following configuration options inside schemats.json. <em>Note:- Don&#8217;t forget to place the schemats.json file in the current working directory.<\/em><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{\n    \"conn\": \"postgres:\/\/postgres@localhost\/company\",\n    \"table\": [\"users\"],\n    \"output\": \"company.ts\"\n}<\/pre>\n\n\n\n<p>Now, executing <code>schemats generate<\/code> here is the same as executing <code>schemats generate -c postgres:\/\/postgres@localhost\/company -t users -o company.ts<\/code><\/p>\n\n\n\n<p>Here I&#8217;m listing all the available configuration options you could use inside the config file.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Option Name<\/th><th>Type<\/th><\/tr><\/thead><tbody><tr><td>conn<\/td><td>string<\/td><\/tr><tr><td>table<\/td><td>string[] or string<\/td><\/tr><tr><td>schema<\/td><td>string<\/td><\/tr><tr><td>output<\/td><td>string<\/td><\/tr><tr><td>camelCase<\/td><td>boolean<\/td><\/tr><tr><td>noHeader<\/td><td>boolean<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Write Code with Typed Schema<\/h2>\n\n\n\n<p>By the way, we can also import our output file (such as &#8220;<strong>company.ts<\/strong>&#8220;) directly inside the code. It allows us to write code with <strong>autocompletion<\/strong> and <strong>static type checks<\/strong> because the type definition for our database schema was already generated.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Real-world Usecase of Schemats<\/h2>\n\n\n\n<p>The below flow\/chain is unavoidable if the UI needs to show information that the database schema currently doesn&#8217;t have.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Change front-end components to show information to the user.<\/li><li>That causes type errors in the API types that front and back share.<\/li><li>Fixing those causes errors in the backend.<\/li><li>(Rarely) Fixing those causes errors in the database schema.<\/li><\/ul>\n\n\n\n<p>A perfect solution is to use Schemats to extract TypeScript type definitions from the database schema on every migrate. There&#8217;s an unbroken static typing chain from the database columns, through the backend, through the API, to the Preact components rendering DOM nodes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Schemats Alternatives<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Zapatos<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"562\" src=\"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats_vs_zapatos-1024x562.jpg\" alt=\"Schemats Alternative: Schemats vs Zapatos\" class=\"wp-image-2022\" title=\"Schemats Alternative: Schemats vs Zapatos\" srcset=\"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats_vs_zapatos-1024x562.jpg 1024w, https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats_vs_zapatos-300x165.jpg 300w, https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats_vs_zapatos-768x422.jpg 768w, https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats_vs_zapatos.jpg 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Schemats Alternative: Schemats vs Zapatos<\/figcaption><\/figure>\n\n\n\n<p><a href=\"https:\/\/github.com\/jawj\/zapatos\" target=\"_blank\" rel=\"noreferrer noopener\">Zapatos<\/a> is a great alternative for Schemats. It is a non-ORM database library that offers Zero-abstraction Postgres for TypeScript.<\/p>\n\n\n\n<p>Just like Schemats, Zapatos is also a command-line tool that helps you communicate with the Postgres database and write the TypeScript schema.<\/p>\n\n\n\n<p>Basically, the main objective of Zapatos is to make Postgres and TypeScript work together nicely. It also has built-in support for type safety.<\/p>\n\n\n\n<p><strong>Features of Zapatos:-<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Create a TypeScript schema for every database table.<\/li><li>It enables you to write arbitrary SQL using tagged templates.<\/li><li>Automatically typed CRUD queries.<\/li><li>JOINs as nested JSON.<\/li><li>Manage and retry transactions using <strong>transaction helper functions<\/strong>.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">typeorm-model-generator<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"564\" src=\"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats_vs_typeorm_model_generator-1024x564.jpg\" alt=\"schemats vs typeorm-model-generator\" class=\"wp-image-2066\" title=\"schemats vs typeorm-model-generator\" srcset=\"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats_vs_typeorm_model_generator-1024x564.jpg 1024w, https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats_vs_typeorm_model_generator-300x165.jpg 300w, https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats_vs_typeorm_model_generator-768x423.jpg 768w, https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats_vs_typeorm_model_generator.jpg 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Schemats\u00a0Alternative: schemats\u00a0vs\u00a0typeorm-model-generator<\/figcaption><\/figure>\n\n\n\n<p>Another alternative for Schemats is <a href=\"https:\/\/github.com\/Kononnable\/typeorm-model-generator\" target=\"_blank\" rel=\"noreferrer noopener\">typeorm-model-generator<\/a>. It takes existing databases as input and generates models for TypeORM.<\/p>\n\n\n\n<p>The supported databases by typeorm-model-generator are mentioned below.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Microsoft SQL Server<\/li><li>PostgreSQL<\/li><li>MySQL<\/li><li>MariaDB<\/li><li>Oracle Database<\/li><li>SQLite<\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Download Schemats<\/h2>\n\n\n\n<p>Schemats is an open-source library that is available under the MIT license. You can view\/download its source code from <a href=\"https:\/\/github.com\/SweetIQ\/schemats\" target=\"_blank\" rel=\"noreferrer noopener\">Github<\/a> or install it through <a href=\"https:\/\/www.npmjs.com\/package\/schemats\" target=\"_blank\" rel=\"noreferrer noopener\">npm<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction: What is Schemats and Why Should You Care? Schemats is a tool that helps you automatically generate TypeScript interface definitions from SQL database schema. It completely supports popular relational database management systems (RDBMS) like MySQL and PostgreSQL. This Schemats Tutorial will help you get started and understand the basics of this amazing tool in &#8230; <a title=\"Schemats Tutorial and Ultimate Guide For Beginners\" class=\"read-more\" href=\"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/\" aria-label=\"Read more about Schemats Tutorial and Ultimate Guide For Beginners\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":2005,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[112],"tags":[],"class_list":["post-1985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Schemats Tutorial and Ultimate Guide For Beginners<\/title>\n<meta name=\"description\" content=\"Introduction: What is Schemats and Why Should You Care? Schemats is a tool that helps you automatically generate TypeScript interface definitions from SQL\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Schemats Tutorial and Ultimate Guide For Beginners\" \/>\n<meta property=\"og:description\" content=\"Introduction: What is Schemats and Why Should You Care? Schemats is a tool that helps you automatically generate TypeScript interface definitions from SQL\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"Edopedia\" \/>\n<meta property=\"article:author\" content=\"trulyfurqan\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-02T16:32:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-06T07:20:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"880\" \/>\n\t<meta property=\"og:image:height\" content=\"440\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Furqan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Furqan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Schemats Tutorial and Ultimate Guide For Beginners","description":"Introduction: What is Schemats and Why Should You Care? Schemats is a tool that helps you automatically generate TypeScript interface definitions from SQL","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"Schemats Tutorial and Ultimate Guide For Beginners","og_description":"Introduction: What is Schemats and Why Should You Care? Schemats is a tool that helps you automatically generate TypeScript interface definitions from SQL","og_url":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/","og_site_name":"Edopedia","article_author":"trulyfurqan","article_published_time":"2022-07-02T16:32:50+00:00","article_modified_time":"2022-07-06T07:20:26+00:00","og_image":[{"width":880,"height":440,"url":"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats.jpg","type":"image\/jpeg"}],"author":"Furqan","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Furqan","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/#article","isPartOf":{"@id":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/"},"author":{"name":"Furqan","@id":"https:\/\/www.edopedia.com\/blog\/#\/schema\/person\/3951cb19e3aa56df09e408c98aa02339"},"headline":"Schemats Tutorial and Ultimate Guide For Beginners","datePublished":"2022-07-02T16:32:50+00:00","dateModified":"2022-07-06T07:20:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/"},"wordCount":640,"commentCount":0,"publisher":{"@id":"https:\/\/www.edopedia.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats.jpg","articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/","url":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/","name":"Schemats Tutorial and Ultimate Guide For Beginners","isPartOf":{"@id":"https:\/\/www.edopedia.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats.jpg","datePublished":"2022-07-02T16:32:50+00:00","dateModified":"2022-07-06T07:20:26+00:00","description":"Introduction: What is Schemats and Why Should You Care? Schemats is a tool that helps you automatically generate TypeScript interface definitions from SQL","breadcrumb":{"@id":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/#primaryimage","url":"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats.jpg","contentUrl":"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2022\/07\/schemats.jpg","width":880,"height":440,"caption":"Schemats Tutorial"},{"@type":"BreadcrumbList","@id":"https:\/\/www.edopedia.com\/blog\/schemats-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.edopedia.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Schemats Tutorial and Ultimate Guide For Beginners"}]},{"@type":"WebSite","@id":"https:\/\/www.edopedia.com\/blog\/#website","url":"https:\/\/www.edopedia.com\/blog\/","name":"Edopedia","description":"Coding\/Programming Blog","publisher":{"@id":"https:\/\/www.edopedia.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.edopedia.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.edopedia.com\/blog\/#organization","name":"Edopedia","url":"https:\/\/www.edopedia.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.edopedia.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2017\/10\/edopedia_icon_text_10.jpg","contentUrl":"https:\/\/www.edopedia.com\/blog\/wp-content\/uploads\/2017\/10\/edopedia_icon_text_10.jpg","width":400,"height":100,"caption":"Edopedia"},"image":{"@id":"https:\/\/www.edopedia.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.edopedia.com\/blog\/#\/schema\/person\/3951cb19e3aa56df09e408c98aa02339","name":"Furqan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.edopedia.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e5e68aef3ad8f0b83d56f4953c512c8e57bd2e6dc64daec33b5d0495d9058f51?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e5e68aef3ad8f0b83d56f4953c512c8e57bd2e6dc64daec33b5d0495d9058f51?s=96&d=mm&r=g","caption":"Furqan"},"description":"Well. I've been working for the past three years as a web designer and developer. I have successfully created websites for small to medium sized companies as part of my freelance career. During that time I've also completed my bachelor's in Information Technology.","sameAs":["http:\/\/www.edopedia.com\/blog\/","trulyfurqan"],"url":"https:\/\/www.edopedia.com\/blog\/author\/furqan\/"}]}},"_links":{"self":[{"href":"https:\/\/www.edopedia.com\/blog\/wp-json\/wp\/v2\/posts\/1985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.edopedia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.edopedia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.edopedia.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.edopedia.com\/blog\/wp-json\/wp\/v2\/comments?post=1985"}],"version-history":[{"count":0,"href":"https:\/\/www.edopedia.com\/blog\/wp-json\/wp\/v2\/posts\/1985\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.edopedia.com\/blog\/wp-json\/wp\/v2\/media\/2005"}],"wp:attachment":[{"href":"https:\/\/www.edopedia.com\/blog\/wp-json\/wp\/v2\/media?parent=1985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.edopedia.com\/blog\/wp-json\/wp\/v2\/categories?post=1985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.edopedia.com\/blog\/wp-json\/wp\/v2\/tags?post=1985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}