{"id":124,"date":"2020-09-01T13:44:34","date_gmt":"2020-09-01T13:44:34","guid":{"rendered":"https:\/\/okankaradag.com\/?p=124"},"modified":"2021-04-20T15:22:21","modified_gmt":"2021-04-20T15:22:21","slug":"automapper-kullanimi","status":"publish","type":"post","link":"https:\/\/okankaradag.com\/en\/asp-net\/asp-net-mvc\/automapper-kullanimi","title":{"rendered":"AutoMapper Kullan\u0131m\u0131"},"content":{"rendered":"<p>Merhaba, bu yaz\u0131mda ViewModel ile Entity e\u015fle\u015ftirmesini ba\u015far\u0131l\u0131 bir \u015fekilde yapan AutoMapper k\u00fct\u00fcphanesini inceleyece\u011fiz.<\/p>\n\n\n\n<p><strong>K\u0131saca ViewModel&#8217;den bahsetmek gerekirse<\/strong><\/p>\n\n\n\n<p>Sadece ekranda g\u00f6z\u00fckecek yada i\u015fimize yarayan propertylerden olu\u015fan bir s\u0131n\u0131f&#8230;<\/p>\n\n\n\n<p>Automapper bu noktada entitiy ile viewmodel aras\u0131ndaki transferi ger\u00e7ekle\u015ftiriyor. Bir \u00f6rnek \u00fczerinden nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlayal\u0131m.<\/p>\n\n\n\n<p>Kitap ve Yazar ad\u0131nda iki tane entity&#8217;imiz olsun<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github lang:c# decode:true\" >public class Book\n{\n   public int Id { get; set; }\n   public string Title { get; set; }\n   public int AuthorId { get; set; }\n   public int PageSize { get; set; }\n   public string PublishingHouse{ get; set; }\n   public int ISBN { get; set; }\n   public virtual Author Author { get; set; }\n}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github toolbar:2 show-lang:2 lang:c# decode:true\" >public class Author\n{\n   public int Id { get; set; }\n   public string Name { get; set; }\n   public string Surname { get; set; }\n}<\/pre><\/div>\n\n\n\n<p>Kitap ekleme sayfas\u0131nda Book entity&#8217;sinin Id ve AuthorId \u00f6zelliklerine gerek yok ve ekleyece\u011fimiz kitab\u0131n yazar ad\u0131 gerekli Bunun i\u00e7in bir ViewModel olu\u015ftural\u0131m<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github lang:c# decode:true\" >public class HomeIndexViewModel\n{\n   public string Title { get; set; }\n   public int AuthorName { get; set; }\n   public int PageSize { get; set; }\n   public string PublishingHouse { get; set; }\n   public int ISBN { get; set; }\n}<\/pre><\/div>\n\n\n\n<p>ViewModel olu\u015ftururken SOLID prensiplerine ba\u011fl\u0131 kalal\u0131m yukar\u0131da olu\u015fturdu\u011fumuz ViewModel&#8217;i sadece Home Controller&#8217;daki Index Action&#8217;\u0131nda kullanal\u0131m.<\/p>\n\n\n\n<p>Controller k\u0131sm\u0131nda mapper olmadan \u015f\u00f6yle yap\u0131yorduk:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github lang:c# decode:true\" >public ActionResult Create()\n{   \n   return View();\n}\n[HttpPost]\npublic ActionResult Create(HomeIndexViewModel vm)\n{\n   var Book = new Book()\n   {\n        ISBN = vm.ISBN,\n        PageSize = vm.PageSize,\n        Yay\u0131nEvi = vm.PublishingHouse,\n        Title = vm.Title\n    };\n    using (ApplicationDbContext db = new ApplicationDbContext())\n    {\n        db.Books.Add(Book);\n        db.SaveChanges();\n    }\n    return RedirectToAction(\"Index\");\n}<\/pre><\/div>\n\n\n\n<p>Mapper yapmak i\u00e7in <strong>AutoMapper<\/strong>(s\u00fcr\u00fcm\u00fc 10) ve <strong>AutoFacMvc5 <\/strong>paketlerini nuget \u00fczerinden kural\u0131m<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>AutoMapper 10&#8217;da; api&#8217;ya statik \u00fczerinden eri\u015fimi kald\u0131rd\u0131 dependecy injection kullanarak mapper&#8217;\u0131 kullanaca\u011f\u0131z.<\/p><\/blockquote>\n\n\n\n<p>MapperProfile ad\u0131nda bir s\u0131n\u0131f olu\u015fturup Profile&#8217;dan miras alal\u0131m<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github lang:c# decode:true\" >public class MapperProfile:Profile\n{\n  public MapperProfile()\n  {\n     CreateMap&lt;HomeIndexViewModel, Book&gt;().ForMember(dest=&gt;dest.Yay\u0131nEvi, opt=&gt;opt.MapFrom(src=&gt;src.PublishingHouse));\n  }\n}<\/pre><\/div>\n\n\n\n<p><strong>CreateMap <\/strong>i\u00e7ine iki adet parametre al\u0131yor &lt;TSource,TDestination&gt; yani ilkine verilerimizin geldi\u011fi t\u00fcr\u00fc di\u011ferini de d\u00f6n\u00fc\u015f\u00fcm yapmak istedi\u011fimiz t\u00fcr\u00fc yazaca\u011f\u0131z. Bu k\u0131s\u0131mda isimleri her iki t\u00fcrde de ayn\u0131 olanlar\u0131 otomatik e\u015fle\u015ftirip aktaracakt\u0131r isim farkl\u0131l\u0131\u011f\u0131 olanlar i\u00e7in ise ForMember extension\u0131n\u0131 kullanaca\u011f\u0131z.<\/p>\n\n\n\n<p>Config yap\u0131p globalasax.cs&#8217;de de register yapmal\u0131y\u0131z. Bunun i\u00e7in ContainerConfig ad\u0131nda statik bir s\u0131n\u0131f olu\u015ftural\u0131m.<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github lang:default decode:true\" >public static class ContainerConfig\n{\n   public static void RegisterObjects()\n   {\n      var builder = new ContainerBuilder();\n\n      builder.RegisterControllers(typeof(MvcApplication).Assembly);\n      builder.Register(context =&gt; new MapperConfiguration(cfg =&gt;\n      {\n          cfg.AddProfile&lt;MapperProfile&gt;();\n       })).AsSelf().SingleInstance();\n       builder.Register(c =&gt;\n       {\n           var context = c.Resolve&lt;IComponentContext&gt;();\n           var config = context.Resolve&lt;MapperConfiguration&gt;();\n           return config.CreateMapper(context.Resolve);\n        })\n          .As&lt;IMapper&gt;()\n          .InstancePerLifetimeScope();\n        var container = builder.Build();\n        DependencyResolver.SetResolver(new AutofacDependencyResolver(container));\n        }\n    }<\/pre><\/div>\n\n\n\n<p>Globalasax.cs:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github lang:c# decode:true\" >protected void Application_Start()\n{\n    AreaRegistration.RegisterAllAreas();\n    RouteConfig.RegisterRoutes(RouteTable.Routes);\n    ContainerConfig.RegisterObjects();\n}<\/pre><\/div>\n\n\n\n<h4>Bu i\u015flemleri bitirdikten sonra sadece uygulamak kal\u0131yor.<\/h4>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github lang:c# decode:true\" >public IMapper _mapper;\npublic BookController(IMapper mapper)\n{\n   _mapper = mapper;\n}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"theme:github lang:c# decode:true\" >[HttpPost]\npublic ActionResult Create(HomeIndexViewModel vm)\n{\n     var book = _mapper.Map&lt;Book&gt;(vm);\n     using (ApplicationDbContext db = new ApplicationDbContext())\n     {\n          db.Books.Add(book);\n          db.SaveChanges();\n     }\n     return RedirectToAction(\"Index\");\n}<\/pre><\/div>\n\n\n\n<p>\u015eu an daha temiz bir kod ve iyi bir performans elde ettik.<\/p>","protected":false},"excerpt":{"rendered":"<p>Merhaba, bu yaz\u0131mda ViewModel ile Entity e\u015fle\u015ftirmesini ba\u015far\u0131l\u0131 bir \u015fekilde yapan AutoMapper k\u00fct\u00fcphanesini inceleyece\u011fiz. K\u0131saca ViewModel&#8217;den bahsetmek gerekirse Sadece ekranda g\u00f6z\u00fckecek yada i\u015fimize yarayan propertylerden olu\u015fan bir s\u0131n\u0131f&#8230; Automapper bu noktada entitiy ile viewmodel&#46;&#46;&#46;<\/p>","protected":false},"author":1,"featured_media":92,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16,17],"tags":[23,51,52,53,54],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AutoMapper Kullan\u0131m\u0131 - Okan Karada\u011f<\/title>\n<meta name=\"description\" content=\"AutoMapper \u0131n son s\u00fcr\u00fcm\u00fcn\u00fc kullanarak configuration nas\u0131l yap\u0131l\u0131r?S\u0131f\u0131rdan bir \u00f6renkle yapal\u0131m\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/okankaradag.com\/en\/asp-net\/asp-net-mvc\/automapper-kullanimi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AutoMapper Kullan\u0131m\u0131 - Okan Karada\u011f\" \/>\n<meta property=\"og:description\" content=\"AutoMapper \u0131n son s\u00fcr\u00fcm\u00fcn\u00fc kullanarak configuration nas\u0131l yap\u0131l\u0131r?S\u0131f\u0131rdan bir \u00f6renkle yapal\u0131m\" \/>\n<meta property=\"og:url\" content=\"https:\/\/okankaradag.com\/en\/asp-net\/asp-net-mvc\/automapper-kullanimi\/\" \/>\n<meta property=\"og:site_name\" content=\"Okan Karada\u011f\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-01T13:44:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-04-20T15:22:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/okankaradag.com\/wp-content\/uploads\/2020\/06\/large-e1592142879135.png\" \/>\n\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t<meta property=\"og:image:height\" content=\"181\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Okan Karada\u011f\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Okan Karada\u011f\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi#article\",\"isPartOf\":{\"@id\":\"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi\"},\"author\":{\"name\":\"Okan Karada\u011f\",\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"headline\":\"AutoMapper Kullan\u0131m\u0131\",\"datePublished\":\"2020-09-01T13:44:34+00:00\",\"dateModified\":\"2021-04-20T15:22:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi\"},\"wordCount\":289,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"keywords\":[\"Asp.net Mvc\",\"AutoMapper\",\"AutoMapper 10\",\"AutoMapper Configuration\",\"ViewModel\"],\"articleSection\":[\"Asp.Net MVC\",\"C#\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi\",\"url\":\"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi\",\"name\":\"AutoMapper Kullan\u0131m\u0131 - Okan Karada\u011f\",\"isPartOf\":{\"@id\":\"https:\/\/okankaradag.com\/#website\"},\"datePublished\":\"2020-09-01T13:44:34+00:00\",\"dateModified\":\"2021-04-20T15:22:21+00:00\",\"description\":\"AutoMapper \u0131n son s\u00fcr\u00fcm\u00fcn\u00fc kullanarak configuration nas\u0131l yap\u0131l\u0131r?S\u0131f\u0131rdan bir \u00f6renkle yapal\u0131m\",\"breadcrumb\":{\"@id\":\"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/okankaradag.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AutoMapper Kullan\u0131m\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/okankaradag.com\/#website\",\"url\":\"https:\/\/okankaradag.com\/\",\"name\":\"Okan Karada\u011f\",\"description\":\"Programlama \u00dczerine\",\"publisher\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/okankaradag.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52\",\"name\":\"Okan Karada\u011f\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g\",\"caption\":\"Okan Karada\u011f\"},\"logo\":{\"@id\":\"https:\/\/okankaradag.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/okankaradag.com\"],\"url\":\"https:\/\/okankaradag.com\/en\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AutoMapper Kullan\u0131m\u0131 - Okan Karada\u011f","description":"AutoMapper \u0131n son s\u00fcr\u00fcm\u00fcn\u00fc kullanarak configuration nas\u0131l yap\u0131l\u0131r?S\u0131f\u0131rdan bir \u00f6renkle yapal\u0131m","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:\/\/okankaradag.com\/en\/asp-net\/asp-net-mvc\/automapper-kullanimi\/","og_locale":"en_US","og_type":"article","og_title":"AutoMapper Kullan\u0131m\u0131 - Okan Karada\u011f","og_description":"AutoMapper \u0131n son s\u00fcr\u00fcm\u00fcn\u00fc kullanarak configuration nas\u0131l yap\u0131l\u0131r?S\u0131f\u0131rdan bir \u00f6renkle yapal\u0131m","og_url":"https:\/\/okankaradag.com\/en\/asp-net\/asp-net-mvc\/automapper-kullanimi\/","og_site_name":"Okan Karada\u011f","article_published_time":"2020-09-01T13:44:34+00:00","article_modified_time":"2021-04-20T15:22:21+00:00","og_image":[{"width":350,"height":181,"url":"https:\/\/okankaradag.com\/wp-content\/uploads\/2020\/06\/large-e1592142879135.png","type":"image\/png"}],"author":"Okan Karada\u011f","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Okan Karada\u011f","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi#article","isPartOf":{"@id":"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi"},"author":{"name":"Okan Karada\u011f","@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"headline":"AutoMapper Kullan\u0131m\u0131","datePublished":"2020-09-01T13:44:34+00:00","dateModified":"2021-04-20T15:22:21+00:00","mainEntityOfPage":{"@id":"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi"},"wordCount":289,"commentCount":0,"publisher":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"keywords":["Asp.net Mvc","AutoMapper","AutoMapper 10","AutoMapper Configuration","ViewModel"],"articleSection":["Asp.Net MVC","C#"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi#respond"]}]},{"@type":"WebPage","@id":"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi","url":"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi","name":"AutoMapper Kullan\u0131m\u0131 - Okan Karada\u011f","isPartOf":{"@id":"https:\/\/okankaradag.com\/#website"},"datePublished":"2020-09-01T13:44:34+00:00","dateModified":"2021-04-20T15:22:21+00:00","description":"AutoMapper \u0131n son s\u00fcr\u00fcm\u00fcn\u00fc kullanarak configuration nas\u0131l yap\u0131l\u0131r?S\u0131f\u0131rdan bir \u00f6renkle yapal\u0131m","breadcrumb":{"@id":"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/okankaradag.com\/asp-net\/asp-net-mvc\/automapper-kullanimi#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/okankaradag.com\/"},{"@type":"ListItem","position":2,"name":"AutoMapper Kullan\u0131m\u0131"}]},{"@type":"WebSite","@id":"https:\/\/okankaradag.com\/#website","url":"https:\/\/okankaradag.com\/","name":"Okan Karada\u011f","description":"Programlama \u00dczerine","publisher":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/okankaradag.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/0196919c5e3b6a496101ded872640d52","name":"Okan Karada\u011f","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/okankaradag.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ca08a5537d7e304914c37189abedd2a1?s=96&d=mm&r=g","caption":"Okan Karada\u011f"},"logo":{"@id":"https:\/\/okankaradag.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/okankaradag.com"],"url":"https:\/\/okankaradag.com\/en\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/124"}],"collection":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/comments?post=124"}],"version-history":[{"count":8,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/124\/revisions"}],"predecessor-version":[{"id":257,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/posts\/124\/revisions\/257"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/media\/92"}],"wp:attachment":[{"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/media?parent=124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/categories?post=124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/okankaradag.com\/en\/wp-json\/wp\/v2\/tags?post=124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}