﻿
{"id":3661,"date":"2016-03-08T16:51:28","date_gmt":"2016-03-08T16:51:28","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=3661"},"modified":"2016-03-08T16:52:23","modified_gmt":"2016-03-08T16:52:23","slug":"visual-studio-ile-code-contracts-yapisi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/visual-studio-ile-code-contracts-yapisi\/","title":{"rendered":"Visual Studio \u0130le Code Contracts Yap\u0131s\u0131"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Uzun zamand\u0131r var olan ama \u015fahsen benim varl\u0131\u011f\u0131ndan bir haber oldu\u011fum Code Contracts yap\u0131s\u0131n\u0131 \u00f6\u011frendi\u011fim zaman \u00e7ok i\u015fe yarar ve avantajl\u0131 bir i\u015flev g\u00f6ren ve bu g\u00fcne kadar &#8220;nerdeydin olum&#8221; dedirten bir yap\u0131 oldu\u011funu belirtmeden edemeyece\u011fim.<\/p>\n<p>Code Contracts yap\u0131s\u0131, ad\u0131 \u00fczerinde yazd\u0131\u011f\u0131m\u0131z i\u015flevsel program\u0131n kontrat\u0131n\u0131 yani yasal y\u00fck\u00fcml\u00fcl\u00fc\u011f\u00fcn\u00fc belirlememizi sa\u011flayan yap\u0131d\u0131r. Static olarak metod i\u00e7erisine yerle\u015ftirilen Code Contracts yap\u0131s\u0131 sayesinde, derleme veyahut \u00e7al\u0131\u015fma zaman\u0131nda ilgili yap\u0131n\u0131n durumunu kontrol etmemize yaramaktad\u0131rlar.<\/p>\n<p>As\u0131l kullanmada sa\u011flad\u0131\u011f\u0131 avantaj\u0131 ise yazd\u0131\u011f\u0131m\u0131z metodlar\u0131n parametrelerin de\u011ferlerini do\u011frulamay\u0131 ve kontrol alt\u0131na almay\u0131 sa\u011flamas\u0131d\u0131r. \u00d6rnek olarak, metodun i\u015flevinin sa\u011fl\u0131kl\u0131 \u00e7al\u0131\u015fabilmesi i\u00e7in alaca\u011f\u0131 parametrenin null de\u011fer olmamas\u0131 gerekti\u011fi ya da i\u015flevde gelecek de\u011ferin filanca de\u011ferden b\u00fcy\u00fck &#8211; k\u00fc\u00e7\u00fck olmas\u0131 gibi gerekli kriterlerde Code Contracts yap\u0131s\u0131 sayesinde kontrol sa\u011flayabilir ve benzer durumlarda kullanabiliriz.<\/p>\n<p>Birde buna ek olarak, ba\u015fkalar\u0131n\u0131n kullanmas\u0131 ama\u00e7l\u0131 olu\u015fturaca\u011f\u0131n\u0131z Api, Web Service, K\u00fct\u00fcphane vs.. gibi yap\u0131larda olu\u015fturdu\u011funuz elemanlarda Code Contracts yap\u0131s\u0131n\u0131 kullanarak, sizin sundu\u011funuz bu servisler \u00fczerinde \u00e7al\u0131\u015fan yaz\u0131l\u0131mc\u0131lara kolayl\u0131k sa\u011flayacak ve yanl\u0131\u015f de\u011ferlere hata f\u0131rtalarak m\u00fcdahale edebileceksiniz. S\u00f6z gelimi, yazm\u0131\u015f oldu\u011funuz bir Web Service&#8217;de &#8220;Yas(int yas)&#8221; isimli bir metodunuz var. Lakin bu metoda g\u00f6nderilecek parametre de\u011feri 18&#8217;den b\u00fcy\u00fck veya e\u015fit oldu\u011fu de\u011ferleri kabul edece\u011fini di\u011fer kullan\u0131c\u0131ya g\u00f6sterebilir ve \u015fart\u0131n d\u0131\u015f\u0131nda girilen de\u011fer durumunda ki derleme a\u015famas\u0131nda ilgili kriteri belirten uyar\u0131 cinsinden hata verdirebilirsiniz. Eee haliyle ilgili yaz\u0131l\u0131mc\u0131 g\u00f6zden Code Contracts&#8217;\u0131n uyar\u0131s\u0131n\u0131 ka\u00e7\u0131rsada uyar\u0131 sonucu yola gelecektir \ud83d\ude42<\/p>\n<p>\u015eimdi Code Contracts yap\u0131s\u0131n\u0131 nas\u0131l entegre edece\u011fimizi inceleyelim.<\/p>\n<p>\u00d6ncelikle yapmam\u0131z gereken <a href=\"https:\/\/visualstudiogallery.msdn.microsoft.com\/1ec7db13-3363-46c9-851f-1ce455f66970\" target=\"_blank\">bu adresten<\/a> Code Contracts Tools&#8217;u indirmeli ve kurmal\u0131y\u0131z.<\/p>\n<p>\u0130ndirdi\u011finiz dosya \u00fczerine t\u0131klay\u0131p &#8220;Next&#8221; -&gt; &#8220;Next&#8221; he &#8220;Next&#8221; diyerek dakika i\u00e7erisinde kurulumunu ger\u00e7ekle\u015ftiriniz.<\/p>\n<p>Kurulumdan sonra yapman\u0131z gereken, \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z projeye sa\u011f t\u0131klayarak Properties b\u00f6l\u00fcm\u00fcne geliniz.<\/p>\n<div id=\"attachment_3663\" style=\"width: 731px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.gencayyildiz.com\/blog\/visual-studio-ile-code-contracts-yapisi\/visual-studio-ile-code-contracts-yapisi\/\" rel=\"attachment wp-att-3663\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3663\" class=\"size-full wp-image-3663\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131.png\" alt=\"Visual Studio \u0130le Code Contracts Yap\u0131s\u0131\" width=\"721\" height=\"590\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131.png 721w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-300x245.png 300w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><\/a><p id=\"caption-attachment-3663\" class=\"wp-caption-text\">Visual Studio \u0130le Code Contracts Yap\u0131s\u0131<\/p><\/div>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Code Contracts kategorisi sol men\u00fcye gelmi\u015ftir. Bana \u00e7al\u0131\u015fmamda rehber olan Arda \u00c7etinkaya hocam\u0131zda resimde vurgulad\u0131\u011f\u0131m yerleri i\u015faretlememiz gerekti\u011fini \u00f6nceden belirtmi\u015f.(Allah raz\u0131 olsun \ud83d\ude42 ) Bu yap\u0131lan ayarlar kodun statik olarak analiz edilmesi ve kontrantlar\u0131n i\u015fletilmesini, e\u011fer bir uygunsuzluk var ise de hata g\u00f6sterilmesini sa\u011flamaktad\u0131rlar. Yok e\u011fer uygunsuzluk an\u0131nda hata de\u011filde Warning al\u0131nmas\u0131n\u0131 istiyorsan\u0131z e\u011fer &#8220;Fail build on warnings&#8221; i\u015faretini kald\u0131rman\u0131z yeterlidir.<\/p>\n<p>Bu i\u015flemlerden sonra Code Contracts&#8217;\u0131 kullanaca\u011f\u0131n\u0131z kod sayfas\u0131na &#8220;System.Diagnostics.Contracts&#8221; k\u00fct\u00fcphanesini entegre etmeniz yeterlidir.<\/p>\n<p>Art\u0131k entegrasyon i\u015flemi tamam. \u015eimdi Code Contracts yap\u0131s\u0131n\u0131 nas\u0131l tan\u0131mlayaca\u011f\u0131m\u0131za ge\u00e7ebiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        public static void Yas(int yas)\r\n        {\r\n\r\n        }\r\n<\/pre>\n<p>\u00d6ncelikle yukar\u0131daki metodu ele al\u0131rsak e\u011fer, &#8220;yas&#8221; parametresine 18&#8217;den k\u00fc\u00e7\u00fck de\u011fer girilemeyece\u011fini belirtelim. Bunu biz a\u00e7\u0131klama olarakta ger\u00e7ekle\u015ftirebiliriz lakin Code Contracts yap\u0131s\u0131n\u0131 birazdan referans tipinden bir parametre \u00fczerinde kullan\u0131rken daha net alg\u0131layaca\u011f\u0131z.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        public static void Yas(int yas)\r\n        {\r\n            Contract.Requires(yas &gt; 18, &quot;L\u00fctfen 18'den b\u00fcy\u00fck de\u011fer giriniz.&quot;);\r\n        }\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Contract s\u0131n\u0131f\u0131nda static olarak bulunan Requires metodu arac\u0131l\u0131\u011f\u0131yla ilgili metodumuza kontrat\u0131m\u0131z\u0131 tan\u0131mlam\u0131\u015f bulunmaktay\u0131z. E\u011fer \u015farta uygunsuz de\u011fer girilirse 2. parametredeki de\u011fer g\u00f6sterilecektir.<\/p>\n<div id=\"attachment_3666\" style=\"width: 336px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.gencayyildiz.com\/blog\/visual-studio-ile-code-contracts-yapisi\/visual-studio-ile-code-contracts-yapisi-2\/\" rel=\"attachment wp-att-3666\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3666\" class=\"size-full wp-image-3666\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-1.png\" alt=\"Visual Studio \u0130le Code Contracts Yap\u0131s\u0131\" width=\"326\" height=\"149\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-1.png 326w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-1-300x137.png 300w\" sizes=\"auto, (max-width: 326px) 100vw, 326px\" \/><\/a><p id=\"caption-attachment-3666\" class=\"wp-caption-text\">Visual Studio \u0130le Code Contracts Yap\u0131s\u0131<\/p><\/div>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi \u015farta uymayan de\u011ferlerde kontrat hatay\u0131 ve gerekli \u015fart\u0131 muhattap yaz\u0131l\u0131mc\u0131ya g\u00f6stermektedir.<\/p>\n<div id=\"attachment_3667\" style=\"width: 330px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.gencayyildiz.com\/blog\/visual-studio-ile-code-contracts-yapisi\/visual-studio-ile-code-contracts-yapisi-3\/\" rel=\"attachment wp-att-3667\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3667\" class=\"size-full wp-image-3667\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-2.png\" alt=\"Visual Studio \u0130le Code Contracts Yap\u0131s\u0131\" width=\"320\" height=\"142\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-2.png 320w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-2-300x133.png 300w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a><p id=\"caption-attachment-3667\" class=\"wp-caption-text\">Visual Studio \u0130le Code Contracts Yap\u0131s\u0131<\/p><\/div>\n<p>\u015earta uygun de\u011ferler parametreye verildi\u011finde hatas\u0131z kodumuz \u00e7al\u0131\u015fmaktad\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        static public void EviKirala(Insan insan)\r\n        {\r\n            Contract.Requires(insan != null, &quot;Insan nesnesi null olamaz.&quot;);\r\n            Contract.Requires(!String.IsNullOrEmpty(insan.Adi) &amp;&amp; !String.IsNullOrEmpty(insan.SoyAdi), &quot;Ad\u0131 veya soyad\u0131 bo\u015f olamaz.&quot;);\r\n            Contract.Requires(insan.EvliMi, &quot;Evli olmayana ev yok!&quot;);\r\n        }\r\n<\/pre>\n<p>E\u011fer yukar\u0131daki gibi bir referans tipli de\u011fi\u015fkeni ele al\u0131rsak, muhattap yaz\u0131l\u0131mc\u0131 Insan s\u0131n\u0131f\u0131n\u0131n hangi \u00f6zelliklerinin, hangi \u015farta g\u00f6re tan\u0131mlanmas\u0131 gerekti\u011fini bilemeyecektir.(Tabi farkl\u0131 bir mesajla belirtmediysek) \u0130\u015fte bu tarz durumlarda Code Contract olduk\u00e7a i\u015fe yaramaktad\u0131r. \u00d6rnekte de g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi ilgili nesne belirli ko\u015fullar\u0131 (PreConditions) sa\u011fl\u0131yor mu? sa\u011flam\u0131yor mu? kontratlar sayesinde kontrol edebiliyoruz.<\/p>\n<div id=\"attachment_3669\" style=\"width: 535px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.gencayyildiz.com\/blog\/visual-studio-ile-code-contracts-yapisi\/visual-studio-ile-code-contracts-yapisi-4\/\" rel=\"attachment wp-att-3669\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3669\" class=\"size-full wp-image-3669\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-3.png\" alt=\"Visual Studio \u0130le Code Contracts Yap\u0131s\u0131\" width=\"525\" height=\"137\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-3.png 525w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-3-300x78.png 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/a><p id=\"caption-attachment-3669\" class=\"wp-caption-text\">Visual Studio \u0130le Code Contracts Yap\u0131s\u0131<\/p><\/div>\n<p>Ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi belirtti\u011fimiz ko\u015ful ge\u00e7erli olmad\u0131\u011f\u0131ndan ilk Contract&#8217;\u0131n mesaj\u0131n\u0131 vermektedir. E\u011fer ilk kontrat ko\u015fulu do\u011fru sa\u011flanm\u0131\u015f olsayd\u0131 di\u011fer kontratlar\u0131 kontrol edecektir.<\/p>\n<div id=\"attachment_3670\" style=\"width: 739px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.gencayyildiz.com\/blog\/visual-studio-ile-code-contracts-yapisi\/visual-studio-ile-code-contracts-yapisi-5\/\" rel=\"attachment wp-att-3670\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3670\" class=\"size-full wp-image-3670\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-4.png\" alt=\"Visual Studio \u0130le Code Contracts Yap\u0131s\u0131\" width=\"729\" height=\"197\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-4.png 729w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-4-300x81.png 300w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/a><p id=\"caption-attachment-3670\" class=\"wp-caption-text\">Visual Studio \u0130le Code Contracts Yap\u0131s\u0131<\/p><\/div>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi ilk kontrat ko\u015fulu sa\u011fland\u0131\u011f\u0131 zaman Ad ve Soyad \u00f6zelliklerine \u00f6zel kontrat devreye girmi\u015ftir.<\/p>\n<div id=\"attachment_3672\" style=\"width: 576px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.gencayyildiz.com\/blog\/visual-studio-ile-code-contracts-yapisi\/visual-studio-ile-code-contracts-yapisi-6\/\" rel=\"attachment wp-att-3672\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3672\" class=\"size-full wp-image-3672\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-5.png\" alt=\"Visual Studio \u0130le Code Contracts Yap\u0131s\u0131\" width=\"566\" height=\"230\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-5.png 566w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-5-300x122.png 300w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><\/a><p id=\"caption-attachment-3672\" class=\"wp-caption-text\">Visual Studio \u0130le Code Contracts Yap\u0131s\u0131<\/p><\/div>\n<p>\u0130lk iki kontrat do\u011frulanm\u0131\u015f ise sonuncusunu g\u00f6rmektedir.<\/p>\n<div id=\"attachment_3673\" style=\"width: 333px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.gencayyildiz.com\/blog\/visual-studio-ile-code-contracts-yapisi\/visual-studio-ile-code-contracts-yapisi-7\/\" rel=\"attachment wp-att-3673\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3673\" class=\"size-full wp-image-3673\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-6.png\" alt=\"Visual Studio \u0130le Code Contracts Yap\u0131s\u0131\" width=\"323\" height=\"229\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-6.png 323w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/03\/Visual-Studio-\u0130le-Code-Contracts-Yap\u0131s\u0131-6-300x213.png 300w\" sizes=\"auto, (max-width: 323px) 100vw, 323px\" \/><\/a><p id=\"caption-attachment-3673\" class=\"wp-caption-text\">Visual Studio \u0130le Code Contracts Yap\u0131s\u0131<\/p><\/div>\n<p>T\u00fcm kontratlar\u0131n ko\u015fullar\u0131 ge\u00e7erli oldu\u011fu durumda sorunsuz \u00e7al\u0131\u015fmaktad\u0131r.<\/p>\n<p>Buraya kadar tek dikkat etmeniz gereken bir husus mevcuttur.<\/p>\n<blockquote><p><span style=\"color: #808080;\"><strong><em>E\u011fer bir metotda\u00a0Code Contracts kullanacaksan\u0131z, o metodun ilk sat\u0131rlar\u0131nda\u00a0Contract&#8217;lar\u0131n tan\u0131mlanmas\u0131 gerekmektedir. Aksi durumda program derleme hatas\u0131 verecektir.<\/em><\/strong><\/span><\/p><\/blockquote>\n<p>Faydalanman\u0131z dile\u011fiyle&#8230;<\/p>\n<p>Hepinize iyi \u00e7al\u0131\u015fmalar dilerim&#8230;<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<\/p>\n<p>Kaynak : http:\/\/www.minepla.net\/2014\/10\/code-contracts-nedir-kullanmak-lazim\/<\/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>Uzun zamand\u0131r var olan ama \u015fahsen benim varl\u0131\u011f\u0131ndan bir haber oldu\u011fum Code Contracts yap\u0131s\u0131n\u0131 \u00f6\u011frendi\u011fim zaman \u00e7ok i\u015fe yarar ve avantajl\u0131 bir i\u015flev g\u00f6ren ve bu g\u00fcne kadar &#8220;nerdeydin olum&#8221; dedirten bir yap\u0131 oldu\u011funu&#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":3014,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,338,720],"tags":[932,934,935,933,26],"class_list":["post-3661","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-sharp-c","category-c-5-0","category-c-6-0","tag-code-contracts","tag-code-contracts-tools","tag-preconditions","tag-system-diagnostics-contracts","tag-visual-studio"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3661","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=3661"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3661\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/3014"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=3661"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=3661"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=3661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}