{"id":2726,"date":"2017-08-01T03:30:52","date_gmt":"2017-08-01T03:30:52","guid":{"rendered":"https:\/\/readmeprd.wpenginepowered.com\/?p=730"},"modified":"2024-11-02T17:55:49","modified_gmt":"2024-11-02T22:55:49","slug":"documenting-your-api-in-your-code-with-swagger","status":"publish","type":"post","link":"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger","title":{"rendered":"Documenting Your API Right in Your Code With OpenAPI"},"content":{"rendered":"\n<p>OpenAPI Specification (OAS), formerly known as Swagger, has become the de facto standard for documenting APIs. <a href=\"https:\/\/docs.readme.com\/main\/docs\/openapi\">While building out our support for it<\/a>, however, we found it was a bit tough to create, manage, and host OAS files.<\/p>\n\n\n\n<p>There are a few tools for this out there, like Apiary or Swagger Hub. However, these are more focused on designing APIs, rather than documenting them. For people who want to use OAS primarily for documenting existing APIs, it makes much more sense to maintain the documentation inline, right near the code. We&#8217;ve built a few OAS-related tools to help!<\/p>\n\n\n\n<p><strong>Tl;dr:<\/strong> It&#8217;s easy to document your APIs right from the code! Install <code>npm install oas -g<\/code>, and run <code>oas init<\/code>. This will guide you through everything! Keep reading if you want more details.<\/p>\n\n\n\n<p><em>Need documentation for your API? You can use your <code>oas<\/code>-generated URL in ReadMe for instant documentation! <a href=\"https:\/\/docs.readme.com\/main\/docs\/openapi-upload\">Learn more here.<\/a><\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"theworkflow\">The Workflow<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><a href=\"#1creatinganoasfile\">Create an OAS file:<\/a><\/strong> Use <code>oas<\/code>, a command line tool for creating, managing and uploading OAS files.<\/li>\n\n\n\n<li><strong><a href=\"#2documentingendpoints\">Documenting endpoints:<\/a><\/strong> Use Swagger Inline to extract your OAS defintions right from code comments.<\/li>\n\n\n\n<li><strong><a href=\"#3hostingyouroasfile\">Hosting your OAS file:<\/a><\/strong> Running <code>oas host<\/code> will upload your file to <a href=\"https:\/\/openap.is\">https:\/\/openap.is<\/a>, a repository for easily sharing Swagger files.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"1creatinganoasfile\">1. Creating an OAS File<\/h2>\n\n\n\n<style>\n.custom-code-block {\n    background-color: #2e3440;\n    color: #d4d4d4;\n    padding: 16px;\n    border-radius: 8px;\n    font-size: 14px;\n    line-height: 1.5;\n    overflow-x: auto;\n}\n\n.custom-code-block .comment {\n    color: #4c566a;\n}\n\n.custom-code-block .keyword {\n    color: #89b3b3;\n    font-weight: bold;\n}\n\n.custom-code-block .variable {\n    color: #89b3b3;\n}\n\n.custom-code-block .string {\n    color: #a3be8c; \n}\n\n.custom-code-block .meta {\n    color: #81a1c1; \n    font-weight: bold;\n}\n<\/style>\n\n<div class=\"custom-code-block\">\n<pre><code>\n<span class=\"meta\">$<\/span> <span class=\"string\">npm install oas -g<\/span>\n<span class=\"meta\">$<\/span> <span class=\"string\">oas init<\/span>\n<\/code><\/pre>\n<\/div>\n\n\n\n\n<p>Don&#8217;t have an OAS file? This is where to start! In any directory, type <code>oas init<\/code>. You&#8217;ll be asked a few questions, and a <code>swagger.json<\/code> (or <code>swagger.yaml<\/code>) file will be created. It will create everything a normal OAS file would have, except for the <code>paths<\/code>. These are done in-line!<\/p>\n\n\n\n<p>(Links: <a href=\"https:\/\/github.com\/readmeio\/oas\">GitHub<\/a> \u00b7 <a href=\"https:\/\/github.com\/readmeio\/oas\/issues\">GitHub Issues<\/a> \u00b7 <a href=\"https:\/\/www.npmjs.com\/package\/oas\">npm<\/a>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2documentingendpoints\">2. Documenting Endpoints<\/h2>\n\n\n\n<p>Documenting your endpoints is only useful if they&#8217;re up to date, and it&#8217;s easy to forget. We love the idea of having your documentation right in the code, so it&#8217;s version controlled. And, it&#8217;s much harder to forget to update. So, we created something called Swagger Inline to solve this problem.<\/p>\n\n\n\n<style>\n.custom-code-block {\n    background-color: #2e3440;\n    color: #d4d4d4;\n    padding: 16px;\n    border-radius: 8px;\n    font-size: 14px;\n    line-height: 1.5;\n    overflow-x: auto;\n}\n\n.custom-code-block .comment {\n    color: #4c566a;\n}\n\n.custom-code-block .keyword {\n    color: #89b3b3;\n    font-weight: bold;\n}\n\n.custom-code-block .variable {\n    color: #89b3b3;\n}\n\n.custom-code-block .string {\n    color: #a3be8c; \n}\n<\/style>\n\n<div class=\"custom-code-block\">\n<pre><code>\n<span class=\"comment\">\/*\n * @api [get] \/pet\/{petId}\n * description: \"Returns all pets from the system that the user has access to\"\n * parameters:\n *   - (path) petId=2* {Integer} The pet ID\n *   - (query) limit {Integer:int32} The number of resources to return\n * responses:\n *   200:\n *     description: It works!\n *\/<\/span>\nroute.get(<span class=\"string\">\"\/pet\/:petId\"<\/span>, pet.show);\n<\/code><\/pre>\n<\/div>\n\n\n\n\n<p>Any code block that starts with <code>@api<\/code> will be compiled into your OAS file. The first line is in the format of <code>@api [method] url<\/code>, and everything else must be valid YAML following the OAS spec.<\/p>\n\n\n\n<p>One thing we hated was how verbose parameters syntax was in OAS. A simple parameter could easily end up being 5\u201310 lines, and many endpoints have a large number of parameters. So, we&#8217;ve created a shorthand that is expanded when we generate Swagger files:<\/p>\n\n\n\n<p><code>(in) name=default {type:format} description<\/code><\/p>\n\n\n\n<p>This allows you to describe your parameters in a much more succinct way. If you need something more complex, you can still use the full OAS parameter syntax.<\/p>\n\n\n\n<p>(Links: <a href=\"https:\/\/github.com\/readmeio\/swagger-inline\">GitHub<\/a> \u00b7 <a href=\"https:\/\/github.com\/readmeio\/swagger-inline\/issues\">GitHub Issues<\/a> \u00b7 <a href=\"https:\/\/www.npmjs.com\/package\/swagger-inline\">npm<\/a>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"3hostingyouroasfile\">3. Hosting Your OAS File<\/h2>\n\n\n\n<p>Lastly, we wanted to make it easy for people to quickly turn their local OAS file into a shareable URL. If you type <code>oas host<\/code>, it will upload the Swagger file and give you a URL:<\/p>\n\n\n\n<style>\n.custom-code-block {\n    background-color: #2e3440;\n    color: #d4d4d4;\n    padding: 16px;\n    border-radius: 8px;\n    font-size: 14px;\n    line-height: 1.5;\n    overflow-x: auto;\n}\n\n.custom-code-block .comment {\n    color: #4c566a;\n}\n\n.custom-code-block .keyword {\n    color: #89b3b3;\n    font-weight: bold;\n}\n\n.custom-code-block .variable {\n    color: #89b3b3;\n}\n\n.custom-code-block .string {\n    color: #a3be8c; \n}\n\n.custom-code-block .meta {\n    color: #81a1c1; \n    font-weight: bold;\n}\n<\/style>\n\n<div class=\"custom-code-block\">\n<pre><code>\n<span class=\"meta\">$<\/span> oas host\nUploading Swagger file....\n\nSuccess! You can now access your Swagger <span class=\"keyword\">from<\/span> the following publicly sharable URL:\n\n  <span class=\"string\">https:<\/span><span class=\"comment\">\/\/openap.is\/petstore\/1.0.2.json<\/span>\n\nYou can also use .yaml to <span class=\"keyword\">get<\/span> the YAML representation.\n<\/code><\/pre>\n<\/div>\n\n\n\n\n<p>It will look something like this: <a href=\"https:\/\/openap.is\/petstore\/1.0.2.json\">https:\/\/openap.is\/petstore\/1.0.2.json<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/openap.is\/petstore\/1.0.2.json\"><img decoding=\"async\" src=\"https:\/\/blog.readme.com\/content\/images\/2017\/03\/example.png\" alt=\"Example of a sharable OpenAPI Spec URL\"\/><\/a><\/figure>\n\n\n\n<p>This URL can then be used by other services (including ReadMe!). You get a static URL for each version of your API.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">A Few Notes:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Uploading a file with the same version will replace the version on the site. You can also upload multiple versions.<\/li>\n\n\n\n<li>The pages are styled and have a UI when you view it in the browser, however when a service or tool consumes it, it will be a normal JSON or YAML file.<\/li>\n\n\n\n<li>You can consume the files in either JSON or YAML.<\/li>\n\n\n\n<li>You can grant people access to push with <code>oas manage<\/code>.<\/li>\n\n\n\n<li>If you remove the filename (so, something like <a href=\"https:\/\/openap.is\/petstore\/\">https:\/\/openap.is\/petstore\/<\/a>), you&#8217;ll see a list of all versions. This is good for services that want to automate things.<\/li>\n\n\n\n<li>If you use an openap.is URL in ReadMe, you can have it auto-update every time you push. This is great for including it as part of your build process!<\/li>\n\n\n\n<li>Bonus feature! There&#8217;s a mock server that can be used. If you have an endpoint like <code>POST \/v1\/addPet<\/code>, you can POST to <a href=\"http:\/\/test-awesome-api.1_3_0.mock.tools\/v1\/addPet\">http:\/\/test-awesome-api.1_3_0.mock.tools\/v1\/addPet<\/a> and get an example response back.<\/li>\n<\/ul>\n\n\n\n<p>That&#8217;s it! Documenting your API right in the code is great for keeping things up to date, and super easy to set up!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>OpenAPI Specification (OAS), formerly known as Swagger, has become the de facto standard for documenting APIs. While building out our support for it, however, we found it was a bit tough to create, manage, and host OAS files. There are a few tools for this out there, like Apiary or Swagger Hub. However, these are [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":720,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[23,34],"tags":[43,13,44],"ppma_author":[3],"class_list":["post-2726","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developer-experience","category-how-to","tag-oas","tag-openapi","tag-swagger"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Documenting Your API Right in Your Code With OpenAPI - ReadMe: Resource Library<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Documenting Your API Right in Your Code With OpenAPI - ReadMe: Resource Library\" \/>\n<meta property=\"og:description\" content=\"OpenAPI Specification (OAS), formerly known as Swagger, has become the de facto standard for documenting APIs. While building out our support for it, however, we found it was a bit tough to create, manage, and host OAS files. There are a few tools for this out there, like Apiary or Swagger Hub. However, these are [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger\" \/>\n<meta property=\"og:site_name\" content=\"ReadMe: Resource Library\" \/>\n<meta property=\"article:published_time\" content=\"2017-08-01T03:30:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-02T22:55:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/readme.com\/resources\/wp-content\/uploads\/2017\/08\/openapis.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1583\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sergey Bezdudnyy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sergey Bezdudnyy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger\",\"url\":\"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger\",\"name\":\"Documenting Your API Right in Your Code With OpenAPI - ReadMe: Resource Library\",\"isPartOf\":{\"@id\":\"https:\/\/readme.com\/resources\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger#primaryimage\"},\"image\":{\"@id\":\"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger#primaryimage\"},\"thumbnailUrl\":\"https:\/\/readme.com\/resources\/wp-content\/uploads\/2017\/08\/openapis.png\",\"datePublished\":\"2017-08-01T03:30:52+00:00\",\"dateModified\":\"2024-11-02T22:55:49+00:00\",\"author\":{\"@id\":\"https:\/\/readme.com\/resources\/#\/schema\/person\/5d27caf848984b250c70a69161b76828\"},\"breadcrumb\":{\"@id\":\"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger#primaryimage\",\"url\":\"https:\/\/readme.com\/resources\/wp-content\/uploads\/2017\/08\/openapis.png\",\"contentUrl\":\"https:\/\/readme.com\/resources\/wp-content\/uploads\/2017\/08\/openapis.png\",\"width\":1583,\"height\":500},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/readme.com\/resources\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documenting Your API Right in Your Code With OpenAPI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/readme.com\/resources\/#website\",\"url\":\"https:\/\/readme.com\/resources\/\",\"name\":\"ReadMe: Resource Library\",\"description\":\"Making API documentation better for everyone\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/readme.com\/resources\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/readme.com\/resources\/#\/schema\/person\/5d27caf848984b250c70a69161b76828\",\"name\":\"Sergey Bezdudnyy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/readme.com\/resources\/#\/schema\/person\/image\/8a01d0c296bdfcf8b54a6c0c0a94b904\",\"url\":\"https:\/\/readme.com\/resources\/wp-content\/uploads\/2024\/05\/sergey-profile-thumb.webp\",\"contentUrl\":\"https:\/\/readme.com\/resources\/wp-content\/uploads\/2024\/05\/sergey-profile-thumb.webp\",\"caption\":\"Sergey Bezdudnyy\"},\"sameAs\":[\"http:\/\/auq.io\"],\"url\":\"https:\/\/readme.com\/resources\/author\/sergey-auq\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Documenting Your API Right in Your Code With OpenAPI - ReadMe: Resource Library","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:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger","og_locale":"en_US","og_type":"article","og_title":"Documenting Your API Right in Your Code With OpenAPI - ReadMe: Resource Library","og_description":"OpenAPI Specification (OAS), formerly known as Swagger, has become the de facto standard for documenting APIs. While building out our support for it, however, we found it was a bit tough to create, manage, and host OAS files. There are a few tools for this out there, like Apiary or Swagger Hub. However, these are [&hellip;]","og_url":"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger","og_site_name":"ReadMe: Resource Library","article_published_time":"2017-08-01T03:30:52+00:00","article_modified_time":"2024-11-02T22:55:49+00:00","og_image":[{"width":1583,"height":500,"url":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2017\/08\/openapis.png","type":"image\/png"}],"author":"Sergey Bezdudnyy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Sergey Bezdudnyy","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger","url":"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger","name":"Documenting Your API Right in Your Code With OpenAPI - ReadMe: Resource Library","isPartOf":{"@id":"https:\/\/readme.com\/resources\/#website"},"primaryImageOfPage":{"@id":"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger#primaryimage"},"image":{"@id":"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger#primaryimage"},"thumbnailUrl":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2017\/08\/openapis.png","datePublished":"2017-08-01T03:30:52+00:00","dateModified":"2024-11-02T22:55:49+00:00","author":{"@id":"https:\/\/readme.com\/resources\/#\/schema\/person\/5d27caf848984b250c70a69161b76828"},"breadcrumb":{"@id":"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger#primaryimage","url":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2017\/08\/openapis.png","contentUrl":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2017\/08\/openapis.png","width":1583,"height":500},{"@type":"BreadcrumbList","@id":"https:\/\/readme.com\/resources\/documenting-your-api-in-your-code-with-swagger#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/readme.com\/resources\/"},{"@type":"ListItem","position":2,"name":"Documenting Your API Right in Your Code With OpenAPI"}]},{"@type":"WebSite","@id":"https:\/\/readme.com\/resources\/#website","url":"https:\/\/readme.com\/resources\/","name":"ReadMe: Resource Library","description":"Making API documentation better for everyone","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/readme.com\/resources\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/readme.com\/resources\/#\/schema\/person\/5d27caf848984b250c70a69161b76828","name":"Sergey Bezdudnyy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/readme.com\/resources\/#\/schema\/person\/image\/8a01d0c296bdfcf8b54a6c0c0a94b904","url":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2024\/05\/sergey-profile-thumb.webp","contentUrl":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2024\/05\/sergey-profile-thumb.webp","caption":"Sergey Bezdudnyy"},"sameAs":["http:\/\/auq.io"],"url":"https:\/\/readme.com\/resources\/author\/sergey-auq"}]}},"authors":[{"term_id":3,"user_id":3,"is_guest":0,"slug":"sergey-auq","display_name":"Sergey Bezdudnyy","avatar_url":{"url":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2024\/05\/sergey-profile-thumb.webp","url2x":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2024\/05\/sergey-profile-thumb.webp"},"first_name":"Sergey","last_name":"Bezdudnyy","position":"WordPress Developer","slogan":"Music \ud83c\udfb6\r\n\r\n<br>\r\n\r\nContent Marketing\r\n<br>\r\n&amp; More","description":"Today we\u2019ve got a special guest on the blog\u2014Ceci Stallsmith! If you were at API Mixtape 2023, you got to see her in action as a speaker. If you missed her talk, you\u2019re in luck, because today\u2019s post is covering the same topic: how to create developer marketing that doesn\u2019t suck.\r\n<br><br>\r\nToday we\u2019ve got a special guest on the blog\u2014Ceci Stallsmith! If you were at API Mixtape 2023, you got to see her in action as a speaker. If you missed her talk, you\u2019re in luck, because today\u2019s post is covering the same topic: how to create developer marketing that doesn\u2019t suck."}],"_links":{"self":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/posts\/2726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/comments?post=2726"}],"version-history":[{"count":0,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/posts\/2726\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/media\/720"}],"wp:attachment":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/media?parent=2726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/categories?post=2726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/tags?post=2726"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/ppma_author?post=2726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}