﻿
{"id":11633,"date":"2019-08-11T12:02:07","date_gmt":"2019-08-11T12:02:07","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=11633"},"modified":"2019-08-11T12:02:07","modified_gmt":"2019-08-11T12:02:07","slug":"asp-net-core-identity-veritabani-tablolarini-inceleyelim-iii","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-identity-veritabani-tablolarini-inceleyelim-iii\/","title":{"rendered":"Asp.NET Core Identity &#8211; Veritaban\u0131 Tablolar\u0131n\u0131 \u0130nceleyelim &#8211; III"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bir \u00f6nceki <a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-identity-identity-altyapisi-kurulumu-ii\/\" target=\"_blank\" rel=\"noopener noreferrer\">Asp.NET Core Identity \u2013 Identity Altyap\u0131s\u0131 Kurulumu \u2013 II<\/a> ba\u015fl\u0131kl\u0131 makalede Asp.NET Core uygulamalar\u0131nda Identity altyap\u0131s\u0131n\u0131n nas\u0131l kuruldu\u011funu incelemi\u015ftik. Bu inceleme neticesinde migrate edilerek olu\u015fturulan veritaban\u0131 i\u00e7erisinde a\u015fa\u011f\u0131daki tablolar olu\u015fturulmu\u015ftur. \u0130\u015fte bu makalemizde bu tablolar\u0131n ne oldu\u011funu, hangi i\u015flev i\u00e7in \u00fcretildiklerini detayl\u0131ca irdeleyece\u011fiz.<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Alt-Yap\u0131-Kurulumu-II-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11621\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Alt-Yap\u0131-Kurulumu-II-2.jpg\" alt=\"Asp.NET Core Identity \u2013 Alt Yap\u0131 Kurulumu - II\" width=\"208\" height=\"272\" \/><\/a><\/p>\n<table>\n<thead>\n<tr>\n<th>AspNetUsers<\/th>\n<th width=\"50%\">\u0130nceleme<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-size: 13px; text-align: left;\" colspan=\"2\"><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-11639 size-full alignleft\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III.jpg\" alt=\"Asp.NET Core Identity \u2013 Veritaban\u0131 Tablolar\u0131n\u0131 \u0130nceleyelim - III\" width=\"305\" height=\"312\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III.jpg 305w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-293x300.jpg 293w\" sizes=\"auto, (max-width: 305px) 100vw, 305px\" \/><\/a><br \/>\n<strong>Ne i\u015fe yarar?<\/strong><br \/>\nKullan\u0131c\u0131larla ilgili genel ge\u00e7er bilgileri tutan tablodur.<br \/>\n<strong style=\"color: red;\">1.<\/strong> Her bir kullan\u0131c\u0131y\u0131 temsil edecek olan Primary Key Id de\u011feri. Dikkat edilirse nvarchar olarak ayarlanm\u0131\u015ft\u0131r. Bu ayarlaman\u0131n nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131 bir sonraki makalemizde ele alaca\u011f\u0131z&#8230;<br \/>\n<strong style=\"color: black;\">2.<\/strong> Kullan\u0131c\u0131 ad\u0131n\u0131 tutan kolondur. Dikkat edilirse &#8220;UserName&#8221; kolonunun hemen alt\u0131nda &#8220;NormalizedUserName&#8221; kolonuda mevcuttur. <em>Neden b\u00f6yle bir kolona ihtiya\u00e7 duyulmu\u015ftur?<\/em> Milyonluk\/milyarl\u0131k verilerde(Big Data) arama sorgular\u0131 ger\u00e7ekle\u015ftirilirken h\u0131z kazanmak i\u00e7in olu\u015fturulmu\u015f kolondur. Big datan\u0131n s\u00f6z konusu oldu\u011fu durumlarda bir arama sorgusu &#8220;UserName&#8221; \u00fczerinde de\u011fil &#8220;NormalizedUserName&#8221; kolonu \u00fczerinde ger\u00e7ekle\u015ftirilir. \u00c7\u00fcnk\u00fc &#8220;Normalized&#8230;&#8221; ile ba\u015flayan kolonlar indekslenmi\u015ftir. Dolay\u0131s\u0131yla sorgularda daha h\u0131zl\u0131 \u00e7al\u0131\u015fan bir altyap\u0131ya sahiptirler. &#8220;Normalized&#8230;&#8221; kolonlar\u0131n\u0131n bir di\u011fer \u00f6zelli\u011fi tek bir formatta veri tutmas\u0131d\u0131r. \u00d6rne\u011fin; &#8220;UserName&#8221; kolonunda bulunan &#8220;Gen\u00e7ay&#8221; de\u011feri aynen &#8220;NormalizedUserName&#8221; kolonuna &#8220;GEN\u00c7AY&#8221; olarak b\u00fcy\u00fck harflerle kopyalanacakt\u0131r. B\u00fcy\u00fck harflerle girilmesinin sebebi tek bir fortmat olmas\u0131n\u0131n getirisi olan daha h\u0131zl\u0131 e\u015fle\u015ftirme yap\u0131labilir olmas\u0131yla birlikte daha h\u0131zl\u0131 indexlenebilir olmas\u0131d\u0131r. Bir kolonun &#8220;Normalized&#8230;&#8221; versiyonu varsa e\u011fer o kolonun kendisi indexlenmemektedir. Dolay\u0131s\u0131yla as\u0131l h\u0131zl\u0131 sorgulamalar Entity Framework taraf\u0131ndan Identity&#8217;e \u00f6zel &#8220;Normalized&#8230;&#8221; kolonlar\u0131na odaklan\u0131larak ger\u00e7ekle\u015ftirilir. Bir \u00f6nceki Identity s\u00fcr\u00fcm\u00fcnde t\u00fcm indexlemeler direkt olarak ilgili kolon \u00fczerinde ger\u00e7ekle\u015ftiriliyordu. Dolay\u0131s\u0131yla &#8220;Normalized&#8230;&#8221; ile ba\u015flayan kolonlar s\u00f6z konusu de\u011fildi. Bunun getirisinin yan\u0131nda bir\u00e7okolas\u0131 hatalar\u0131n ya\u015fanmas\u0131 maliyeti olduk\u00e7a y\u00fckseltiyordu.<br \/>\n<strong style=\"color: orange;\">3.<\/strong> Kullan\u0131c\u0131n\u0131n e-posta bilgisini tutan aland\u0131r. <strong style=\"color: black;\">2.<\/strong> numaral\u0131 kolonda oldu\u011fu gibi bu kolonunda ayn\u0131 amaca hizmet eden indexlenmi\u015f de\u011feri olan &#8220;NormalizedEmail&#8221; kolonu mevcuttur.<br \/>\n<strong style=\"color: green;\">4.<\/strong> Kullan\u0131c\u0131dan al\u0131nan t\u00fcm passwordler Hash algoritmas\u0131yla \u015fifrelenerek tutulmaktad\u0131r.<br \/>\n<strong style=\"color: indigo;\">5.<\/strong> Kullan\u0131c\u0131 ilk olu\u015fturuldu\u011funda(create) buraya bir build de\u011feri atan\u0131r. Sonraki her g\u00fcncelleme \u00fczerine bu de\u011fer g\u00fcncellenecektir. Dolay\u0131s\u0131yla bizlerde bu kullan\u0131c\u0131 \u00fczerinde bir de\u011fi\u015fiklik oldu\u011funa dair bilgi edinmi\u015f olaca\u011f\u0131z. Bir nevi <a href=\"https:\/\/www.gencayyildiz.com\/blog\/entity-framework-core-data-concurrency\/\" target=\"_blank\" rel=\"noopener noreferrer\">Data Concurrency<\/a> sa\u011flayabilmek i\u00e7in olu\u015fturulmu\u015ftur.<br \/>\n<strong style=\"color: purple;\">6.<\/strong> \u0130lgili veri \u00fczerinde <a href=\"https:\/\/www.gencayyildiz.com\/blog\/entity-framework-core-data-concurrency\/\" target=\"_blank\" rel=\"noopener noreferrer\">Data Concurrency<\/a> sa\u011flayabilmek i\u00e7in olu\u015fturulmu\u015ftur.<br \/>\n<strong style=\"color: brown;\">7.<\/strong> Kullan\u0131c\u0131n\u0131n kayd\u0131 neticesinde aktivasyon yap\u0131lanmas\u0131n\u0131n iki ad\u0131ml\u0131 olup olmad\u0131\u011f\u0131na dair kay\u0131t tutar. Bu kolon genellikle 3. party \u00fcyelik sistemleriyle birlikte kullan\u0131l\u0131r. \u00d6rne\u011fin; kullan\u0131c\u0131 Facebook \u00fczerinden giri\u015f yapt\u0131\u011f\u0131nda ekstradan telefon ile onay gerektiriyorsa i\u015fte &#8220;TwoFactorEnabled&#8221; kolonu true\/1 olarak i\u015faretlenecektir.<br \/>\n<strong style=\"color: rose;\">8.<\/strong> Kullan\u0131c\u0131 giri\u015flerine dair yap\u0131lan hatalar\u0131 ve engel durumunu tutan kolonlard\u0131r. &#8220;LockoutEnd&#8221; kolonu ka\u00e7 kez yanl\u0131\u015f girildi\u011fine dair, &#8220;LockoutEnabled&#8221; kolonu kullan\u0131c\u0131n\u0131n aktifli\u011fine dair ve &#8220;AccessFailedCount&#8221; kolonu ise ka\u00e7 ba\u015far\u0131s\u0131z giri\u015f yap\u0131lmaya \u00e7al\u0131\u015f\u0131ld\u0131\u011f\u0131na dair bilgi tutmaktad\u0131r. Identity mimarisi bu yap\u0131lar\u0131 otomatik i\u015fleyecektir. Dolay\u0131s\u0131yla taraf\u0131m\u0131zca custom bir kod geli\u015ftirmemize l\u00fczum g\u00f6r\u00fclmemektedir.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<thead>\n<tr>\n<th>AspNetRoles<\/th>\n<th width=\"50%\">\u0130nceleme<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-size: 13px; text-align: left;\" colspan=\"2\"><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-11662 size-full\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-1.jpg\" alt=\"Asp.NET Core Identity \u2013 Veritaban\u0131 Tablolar\u0131n\u0131 \u0130nceleyelim - III\" width=\"294\" height=\"110\" \/><\/a><br \/>\n<strong>Ne i\u015fe yarar?<\/strong><br \/>\nUygulamada kullan\u0131c\u0131lara \u00f6zg\u00fc tan\u0131mlanan rolleri tutan tablodur. \u015e\u00f6yle tabloyu incelersek rollerin ad\u0131n\u0131 tutacak olan &#8220;Name&#8221; kolonu ve bu de\u011ferleri indexleyip big data durumlar\u0131nda performans kazand\u0131racak indexlenmi\u015f &#8220;NormalizedName&#8221; kolonu mevcuttur. Ayriyetten veri tutarl\u0131l\u0131\u011f\u0131 i\u00e7in de &#8220;ConcurrencyStamp&#8221; kolonu mevcuttur.\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<thead>\n<tr>\n<th>AspNetUserRoles<\/th>\n<th width=\"50%\">\u0130nceleme<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-size: 13px; text-align: left;\" colspan=\"2\"><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-2.jpg\" alt=\"Asp.NET Core Identity \u2013 Veritaban\u0131 Tablolar\u0131n\u0131 \u0130nceleyelim - III\" width=\"270\" height=\"77\" class=\"alignleft size-full wp-image-11665\" \/><\/a><br \/>\n<strong>Ne i\u015fe yarar?<\/strong><br \/>\nUygulamada hangi kullan\u0131c\u0131 hangi rol yetkilerine sahip ili\u015fkilendiren Cross Table(Ara Tablo) g\u00f6revi g\u00f6ren bir tablodur. Composite primary key olarak ayarlanan &#8220;UserId&#8221; ile &#8220;RoleId&#8221; kolonlar\u0131 \u00fczerinden bu ili\u015fki sa\u011flanmaktad\u0131r.\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<thead>\n<tr>\n<th>AspNetUserClaims<\/th>\n<th width=\"50%\">\u0130nceleme<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-size: 13px; text-align: left;\" colspan=\"2\"><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-3.jpg\" alt=\"Asp.NET Core Identity \u2013 Veritaban\u0131 Tablolar\u0131n\u0131 \u0130nceleyelim - III\" width=\"246\" height=\"111\" class=\"alignleft size-full wp-image-11669\" \/><\/a><br \/>\n<strong>Ne i\u015fe yarar?<\/strong><br \/>\nKullan\u0131c\u0131lara dair ekstra bilgiler bu tabloda tutulmaktad\u0131r.\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<thead>\n<tr>\n<th>AspNetRoleClaims<\/th>\n<th width=\"50%\">\u0130nceleme<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-size: 13px; text-align: left;\" colspan=\"2\"><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-4.jpg\" alt=\"Asp.NET Core Identity \u2013 Veritaban\u0131 Tablolar\u0131n\u0131 \u0130nceleyelim - III\" width=\"246\" height=\"108\" class=\"alignleft size-full wp-image-11670\" \/><\/a><br \/>\n<strong>Ne i\u015fe yarar?<\/strong><br \/>\nUygulamada tan\u0131mlanan rollere dair ekstra bilgiler bu tabloda tutulmaktad\u0131r.\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<thead>\n<tr>\n<th>AspNetUserLogins<\/th>\n<th width=\"50%\">\u0130nceleme<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-size: 13px; text-align: left;\" colspan=\"2\"><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-5.jpg\" alt=\"Asp.NET Core Identity \u2013 Veritaban\u0131 Tablolar\u0131n\u0131 \u0130nceleyelim - III\" width=\"291\" height=\"107\" class=\"alignleft size-full wp-image-11672\" \/><\/a><br \/>\n<strong>Ne i\u015fe yarar?<\/strong><br \/>\n3. party \u00fcyelik sistemlerinde di\u011fer platformdaki kullan\u0131c\u0131ya ait id de\u011ferini bu tabloda tutmaktad\u0131r. Bu tablo otomatik olarak Identity mimarisi taraf\u0131ndan i\u015flenmektedir.\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<thead>\n<tr>\n<th>AspNetUserTokens<\/th>\n<th width=\"50%\">\u0130nceleme<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-size: 13px; text-align: left;\" colspan=\"2\"><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-6.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2019\/08\/Asp.NET-Core-Identity-\u2013-Veritaban\u0131-Tablolar\u0131n\u0131-\u0130nceleyelim-III-6.jpg\" alt=\"Asp.NET Core Identity \u2013 Veritaban\u0131 Tablolar\u0131n\u0131 \u0130nceleyelim - III\" width=\"287\" height=\"110\" class=\"alignleft size-full wp-image-11674\" \/><\/a><br \/>\n<strong>Ne i\u015fe yarar?<\/strong><br \/>\nToken bazl\u0131 do\u011frulamalarda \u00fcretilen token de\u011feri bu tabloda tutulur.\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Evet&#8230; Art\u0131k \u00fcretilen tablolar\u0131m\u0131z\u0131 da tan\u0131d\u0131\u011f\u0131m\u0131za g\u00f6re bir sonraki i\u00e7eri\u011fimizde &#8220;IdentityUser&#8221; s\u0131n\u0131f\u0131ndan t\u00fcreyen s\u0131n\u0131flara custom property eklenince nas\u0131l bir in\u015fa s\u00f6z konusu oldu\u011funu inceleyebiliriz. O halde \u015fimdilik g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bir \u00f6nceki Asp.NET Core Identity \u2013 Identity Altyap\u0131s\u0131 Kurulumu \u2013 II ba\u015fl\u0131kl\u0131 makalede Asp.NET Core uygulamalar\u0131nda Identity altyap\u0131s\u0131n\u0131n nas\u0131l kuruldu\u011funu incelemi\u015ftik. Bu inceleme neticesinde migrate edilerek olu\u015fturulan veritaban\u0131 i\u00e7erisinde a\u015fa\u011f\u0131daki tablolar olu\u015fturulmu\u015ftur. \u0130\u015fte&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":11583,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2668,2656,2811,2832,2898],"tags":[2953,100,2679,2952,2975,2972,2974,2976,2973,2971,2977,2970,2969],"class_list":["post-11633","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asp-net-core-2","category-asp-net-core-2-mvc","category-asp-net-core-2-1","category-asp-net-core-2-2","category-asp-net-core-3-0","tag-net-core-identity","tag-identity","tag-asp-net-core","tag-asp-net-core-identity","tag-aspnetroleclaims","tag-aspnetroles","tag-aspnetuserclaims","tag-aspnetuserlogins","tag-aspnetuserroles","tag-aspnetusers","tag-aspnetusertokens","tag-normalizedemail","tag-normalizedusername"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/11633","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=11633"}],"version-history":[{"count":34,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/11633\/revisions"}],"predecessor-version":[{"id":11676,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/11633\/revisions\/11676"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/11583"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=11633"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=11633"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=11633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}