{"id":9886,"date":"2022-09-07T11:37:54","date_gmt":"2022-09-07T11:37:54","guid":{"rendered":"https:\/\/prwatech.in\/blog\/?p=9886"},"modified":"2024-04-15T10:44:31","modified_gmt":"2024-04-15T10:44:31","slug":"interface-in-go-lang-golang-interfaces-explained","status":"publish","type":"post","link":"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/","title":{"rendered":"Interface in Go Lang"},"content":{"rendered":"<h2><span data-sheets-root=\"1\" data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Golang Interfaces Explained&quot;}\" data-sheets-userformat=\"{&quot;2&quot;:513,&quot;3&quot;:{&quot;1&quot;:0},&quot;12&quot;:0}\">Golang Interfaces Explained<\/span><\/h2>\n<p>&nbsp;<\/p>\n<ul>\n<li>\n<h3><strong>Declaring interface type<\/strong><\/h3>\n<\/li>\n<\/ul>\n<p>An <a href=\"https:\/\/go.dev\/\">Interface<\/a> is an <a href=\"https:\/\/prwatech.in\/blog\/go-lang\/installation-of-go-windows\/\">abstract<\/a> type.<\/p>\n<p>An interface describes all the methods of a method set and provides the signatures for each method.<\/p>\n<p>To create an interface, use\u00a0the interface keyword, followed by curly braces containing a list of method names, along with any parameters or return values the methods are expected to have.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>\n<h3><strong>Types that Satisfied an Interface <\/strong><\/h3>\n<\/li>\n<\/ul>\n<p>Defines an interface type named\u00a0Employee\u00a0with two methods. Then it defines a type named Emp\u00a0that satisfies\u00a0Employee.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">\/\/ Declare an Interface Type and methods that do not have a body\r\n\r\ntype Employee interface {\r\n    PrintName() string                \/\/ Method with string return type\r\n    PrintAddress(id int)              \/\/ Method with int parameter\r\n    PrintSalary(b int, t int) float64 \/\/ Method with parameters and return type\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Type that Satisfies an Interface<\/strong><\/li>\n<\/ul>\n<p>Defines an interface type named\u00a0Employee\u00a0with two methods. Then it defines a type named Emp\u00a0that satisfies\u00a0Employee.<\/p>\n<p>We define all the methods on Emp\u00a0that it needs to satisfy\u00a0Employee<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"golang\">package main\r\nimport \"fmt\"\r\n\r\n\/\/ Employee is an interface for printing employee details\r\ntype Employee interface {\r\n    PrintName(name string)\r\n    PrintSalary(basic int, tax int) int\r\n}\r\n\/\/ Emp user-defined type\r\ntype Emp int\r\n\r\nfunc (e Emp) PrintName(name string) {   \t\/\/ Print Name method to print employee name\r\n    fmt.Println(\"Employee Id:\\t\", e)\r\n    fmt.Println(\"Employee Name:\\t\", name)\r\n}\r\n\r\nfunc (e Emp) PrintSalary(basic int, tax int) int {          \/\/ Print Salary method to calculate employee salary\r\n    var salary = (basic * tax) \/ 100\r\n    return basic - salary\r\n}\r\n\r\nfunc main() {\r\n    var e1 Employee\r\n    e1 = Emp(2332)\r\n    e1.PrintName(\"Sandeep Sharma\")\r\n    fmt.Println(\"Employee Salary:\", e1.PrintSalary(30000, 5))\r\n}\r\n<\/pre>\n<p>Output :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">PS C:\\GO_Language\\interface&gt; go  run interface.go\r\nEmployee Id:     2332\r\nEmployee Name:   Sandeep Sharma\r\nEmployee Salary: 28500\r\n<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Type that Satisfies Multiple Interfaces<\/strong><\/li>\n<\/ul>\n<p>Interfaces allow any user-defined type to satisfy multiple interface types at once.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"golang\">package main\r\nimport \"fmt\"\r\n\r\ntype Vehicle interface {\r\n    Structure() []string\r\n    Speed() string\r\n}\r\n    \r\ntype Human interface {\r\n    Structure() []string\r\n    Performance() string\r\n}\r\n\r\ntype Car string\r\n\r\nfunc (c Car) Structure() []string {\r\n    var parts = []string{\"ECU\", \"Engine\", \"Air Filters\", \"Wipers\", \"Gas Task\"}\r\n    return parts\r\n}\r\n\r\nfunc (c Car) Speed() string {\r\n    return \"200 Km\/Hrs\"\r\n}\r\n\r\ntype Man string\r\n\r\nfunc (m Man) Structure() []string {\r\n    var parts = []string{\"Brain\", \"Heart\", \"Nose\", \"Eyelashes\", \"Stomach\"}\r\n    return parts\r\n}\r\n\r\nfunc (m Man) Performance() string {\r\n    return \"8 Hrs\/Day\"\r\n}\r\n\r\nfunc main() {\r\n    var BMW Vehicle\r\n    BMW = Car(\"World Top Brand\")\r\n\r\n    var labour Human\r\n    labour = Man(\"Software Developer\")\r\n\r\n    for i, j := range bmw.Structure() {\r\n        fmt.Printf(\"%-15s :    %15s\\n\", j, labour.Structure()[i])\r\n    }\r\n}\r\n<\/pre>\n<p>Output :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">PS C:\\GO_Language\\interface&gt; go  run interface2.go\r\n\r\nECU             :              Brain\r\nEngine          :              Heart\r\nAir Filters     :               Nose\r\nWipers          :          Eyelashes\r\nGas Task        :            Stomach\r\n<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Interface Accepting Address of the Variable<\/strong><\/li>\n<\/ul>\n<p>The Print()\u00a0methods accept a receiver pointer. Hence, the interface must also accept a receiver pointer.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"golang\">package main\r\nimport \"fmt\"\r\n\r\ntype Book struct {\r\n    author, title string\r\n}\r\n\r\ntype Magazine struct {\r\n    title string\r\n    issue int\r\n}\r\n\r\nfunc (b *Book) Assign(n, t string) {\r\n    b.author = n\r\n    b.title = t\r\n}\r\nfunc (b *Book) Print() {\r\n    fmt.Printf(\"Author: %s, Title: %s\\n\", b.author, b.title)\r\n}\r\n\r\nfunc (m *Magazine) Assign(t string, i int) {\r\n    m.title = t\r\n    m.issue = i\r\n}\r\nfunc (m *Magazine) Print() {\r\n    fmt.Printf(\"Title: %s, Issue: %d\\n\", m.title, m.issue)\r\n}\r\n\r\ntype Printer interface {\r\n    Print()\r\n}\r\n\r\nfunc main() {\r\n    var b Book                                 \/\/ Declare an instance of Book\r\n    var m Magazine                             \/\/ Declare instance of Magazine\r\n    b.Assign(\"Jack Rabbit\", \"Book of Rabbits\")                 \/\/ Assign values to b via method\r\n    m.Assign(\"Rabbit Weekly\", 26)              \/\/ Assign values to m via method\r\n\r\n    var i Printer \t\t\t\/\/ Declare variable of interface type\r\n    fmt.Println(\"Call interface\")\r\n    i = &amp;b  \t\t\t  \/\/ Method has pointer receiver, interface does not\r\n    i.Print() \t\t\t\/\/ Show book values via the interface\r\n    i = &amp;m    \t\t\t\/\/ Magazine also satisfies shower interface\r\n    i.Print() \t\t\t\/\/ Show magazine values via the interface\r\n}\r\n<\/pre>\n<p>Output :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">PS C:\\GO_Language\\interface&gt; go  run interface3.go\r\nCall interface\r\nAuthor: Jack Rabbit, Title: Book of Rabbits\r\nTitle: Rabbit Weekly, Issue: 26\r\n<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li>\n<h4><strong>Empty Interface Type<\/strong><\/h4>\n<\/li>\n<\/ul>\n<p>The types interface{} is known as the empty interface, and it is use to accept values of any type. The empty interface doesn&#8217;t have any methods that are require to satisfy it, and so every type satisfies it.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"golang\">package main\r\nimport \"fmt\"\r\n\r\nfunc printType(i interface{}) {\r\n    fmt.Println(i)\r\n}\r\n\r\nfunc main() {\r\n    var manyType interface{}\r\n    manyType = 100\r\n    fmt.Println(manyType)\r\n\r\n    manyType = 200.50\r\n    fmt.Println(manyType)\r\n\r\n    manyType = \"India\"\r\n    fmt.Println(manyType)\r\n\r\n    printType(\"Go programming language\")\r\n    var countries = []string{\"India\", \"Japan\", \"Canada\", \"Australia\", \"Russia\"}\r\n    printType(countries)\r\n\r\n    var employee = map[string]int{\"Mark\": 10, \"Sandy\": 20}\r\n    printType(employee)\r\n\r\n    country := [3]string{\"Japan\", \"Australia\", \"Germany\"}\r\n    printType(country)\r\n}\r\n<\/pre>\n<p>Output :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">PS C:\\GO_Language\\interface&gt; go  run interface4.go\r\n100\r\n200.5\r\nIndia\r\nGo programming language\r\n[india japan canada australia russia]\r\nmap[Mark:10 Sandy:20]\r\n[Japan Australia Germany]\r\n<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Polymorphism<\/strong><\/li>\n<\/ul>\n<p>Polymorphism is the ability to write code that can take on different behaviour through the implementation of types.<\/p>\n<p>We have the declaration of a struct named Pentagon, Hexagon, Octagon, and Decagon with the implementation of the\u00a0geometry\u00a0interface.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"golang\">    package main\r\n\r\nimport (\r\n    \"fmt\"\r\n)\r\n\r\n\/\/ Geometry is an interface that defines Geometrical Calculation\r\ntype Geometry interface {\r\n    Edges() int\r\n}\r\n\r\n\/\/ Pentagon defines a geometrical object\r\ntype Pentagon struct{}\r\n\r\n\/\/ Hexagon defines a geometrical object\r\ntype Hexagon struct{}\r\n\r\n\/\/ Octagon defines a geometrical object\r\ntype Octagon struct{}\r\n\r\n\/\/ Decagon defines a geometrical object\r\ntype Decagon struct{}\r\n\r\n\/\/ Edges implements the geometry interface\r\nfunc (p Pentagon) Edges() int { return 5 }\r\n\r\n\/\/ Edges implements the geometry interface\r\nfunc (h Hexagon) Edges() int { return 6 }\r\n\r\n\/\/ Edges implements the geometry interface\r\nfunc (o Octagon) Edges() int { return 8 }\r\n\r\n\/\/ Edges implements the geometry interface\r\nfunc (d Decagon) Edges() int { return 10 }\r\n\r\n\/\/ Parameter calculates the parameter of an object\r\nfunc Parameter(geo Geometry, value int) int {\r\n    num := geo.Edges()\r\n    calculation := num * value\r\n    return calculation\r\n}\r\n\r\n\/\/ main is the entry point for the application. \r\nfunc main() {\r\n    p := new(Pentagon)\r\n    h := new(Hexagon)\r\n    o := new(Octagon)\r\n    d := new(Decagon)\r\n\r\n    g := [...]Geometry{p, h, o, d}\r\n\r\n    for _, i:= range g {\r\n        fmt.Println(Parameter(i, 5))\r\n    }\r\n}\r\n<\/pre>\n<p>Output :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"golang\">PS C:\\GO_Language\\interface&gt; go  run poly.go      \r\n\r\n25\r\n30\r\n40\r\n50\r\n<\/pre>\n<p>Golang Interfaces Explained<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Golang Interfaces Explained &nbsp; Declaring interface type An Interface is an abstract type. An interface describes all the methods of a method set and provides the signatures for each method. To create an interface, use\u00a0the interface keyword, followed by curly braces containing a list of method names, along with any parameters or return values the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[666,1707],"tags":[1604,1605,1603,1288],"class_list":["post-9886","post","type-post","status-publish","format-standard","hentry","category-go-lang","category-golang-modules","tag-declaring-interface","tag-empty-interface","tag-interface-in-go-lang","tag-polymorphism"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Golang Interfaces Explained - Prwatech<\/title>\n<meta name=\"description\" content=\"Master Golang Interfaces Explained - Dive deep with our expert instructors and comprehensive curriculum, Enroll now.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Golang Interfaces Explained - Prwatech\" \/>\n<meta property=\"og:description\" content=\"Master Golang Interfaces Explained - Dive deep with our expert instructors and comprehensive curriculum, Enroll now.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/\" \/>\n<meta property=\"og:site_name\" content=\"Prwatech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prwatech.in\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-07T11:37:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-15T10:44:31+00:00\" \/>\n<meta name=\"author\" content=\"Prwatech\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Eduprwatech\" \/>\n<meta name=\"twitter:site\" content=\"@Eduprwatech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prwatech\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/\",\"url\":\"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/\",\"name\":\"Golang Interfaces Explained - Prwatech\",\"isPartOf\":{\"@id\":\"https:\/\/prwatech.in\/blog\/#website\"},\"datePublished\":\"2022-09-07T11:37:54+00:00\",\"dateModified\":\"2024-04-15T10:44:31+00:00\",\"author\":{\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3\"},\"description\":\"Master Golang Interfaces Explained - Dive deep with our expert instructors and comprehensive curriculum, Enroll now.\",\"breadcrumb\":{\"@id\":\"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/prwatech.in\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Interface in Go Lang\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/prwatech.in\/blog\/#website\",\"url\":\"https:\/\/prwatech.in\/blog\/\",\"name\":\"Prwatech\",\"description\":\"Share Ideas, Start Something Good.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/prwatech.in\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3\",\"name\":\"Prwatech\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g\",\"caption\":\"Prwatech\"},\"url\":\"https:\/\/prwatech.in\/blog\/author\/prwatech123\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Golang Interfaces Explained - Prwatech","description":"Master Golang Interfaces Explained - Dive deep with our expert instructors and comprehensive curriculum, Enroll now.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Golang Interfaces Explained - Prwatech","og_description":"Master Golang Interfaces Explained - Dive deep with our expert instructors and comprehensive curriculum, Enroll now.","og_url":"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/","og_site_name":"Prwatech","article_publisher":"https:\/\/www.facebook.com\/prwatech.in\/","article_published_time":"2022-09-07T11:37:54+00:00","article_modified_time":"2024-04-15T10:44:31+00:00","author":"Prwatech","twitter_card":"summary_large_image","twitter_creator":"@Eduprwatech","twitter_site":"@Eduprwatech","twitter_misc":{"Written by":"Prwatech","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/","url":"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/","name":"Golang Interfaces Explained - Prwatech","isPartOf":{"@id":"https:\/\/prwatech.in\/blog\/#website"},"datePublished":"2022-09-07T11:37:54+00:00","dateModified":"2024-04-15T10:44:31+00:00","author":{"@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3"},"description":"Master Golang Interfaces Explained - Dive deep with our expert instructors and comprehensive curriculum, Enroll now.","breadcrumb":{"@id":"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/prwatech.in\/blog\/go-lang\/interface-in-go-lang-golang-interfaces-explained\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/prwatech.in\/blog\/"},{"@type":"ListItem","position":2,"name":"Interface in Go Lang"}]},{"@type":"WebSite","@id":"https:\/\/prwatech.in\/blog\/#website","url":"https:\/\/prwatech.in\/blog\/","name":"Prwatech","description":"Share Ideas, Start Something Good.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/prwatech.in\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3","name":"Prwatech","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g","caption":"Prwatech"},"url":"https:\/\/prwatech.in\/blog\/author\/prwatech123\/"}]}},"_links":{"self":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/9886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/comments?post=9886"}],"version-history":[{"count":5,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/9886\/revisions"}],"predecessor-version":[{"id":11543,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/9886\/revisions\/11543"}],"wp:attachment":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/media?parent=9886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/categories?post=9886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/tags?post=9886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}