﻿
{"id":8371,"date":"2018-07-01T09:52:35","date_gmt":"2018-07-01T09:52:35","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=8371"},"modified":"2018-07-01T09:52:35","modified_gmt":"2018-07-01T09:52:35","slug":"angular-ile-web-api-tetikleme","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/angular-ile-web-api-tetikleme\/","title":{"rendered":"Angular \u0130le Web API Tetikleme"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde Angular ile Web API tetiklemeyi inceliyor olaca\u011f\u0131z. \u0130lk olarak <a href=\"http:\/\/www.gencayyildiz.com\/blog\/asp-net-mvc-web-api-nedir-nasil-olusturulur\/\" target=\"_blank\" rel=\"noopener\">Asp.NET MVC \u2013 Web Api Nedir? Nas\u0131l Olu\u015fturulur?<\/a> ba\u015fl\u0131kl\u0131 makalemde ele ald\u0131\u011f\u0131m\u0131z gibi bir Web API olu\u015fturacak ve ard\u0131ndan bu Web API&#8217;ye Angular ile ba\u011flan\u0131p akabinde GET, POST ve PUT i\u015flemlerini ger\u00e7ekle\u015ftirece\u011fiz.<\/p>\n<p>Hi\u00e7 vakit kaybetmeden birer adet Angular uygulamas\u0131 ile yukar\u0131da adresi verilen makalede bahsedildi\u011fi gibi Web API projesi olu\u015fturunuz. Bizler i\u00e7eri\u011fimizde a\u015fa\u011f\u0131daki metotlar\u0131 bar\u0131nd\u0131ran bir Web API \u00fczerinden \u00f6rneklendirmede bulunaca\u011f\u0131z.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    public class PersonelController : ApiController\r\n    {\r\n        NorthwindEntities db = new NorthwindEntities();\r\n        public IEnumerable&lt;Personel&gt; GetAll() =&gt; db.Personeller.Select(p =&gt; new Personel\r\n        {\r\n            PersonelID = p.PersonelID,\r\n            Adi = p.Adi,\r\n            SoyAdi = p.SoyAdi,\r\n            Unvan = p.Unvan\r\n        }).ToList();\r\n        public Personel GetSingle(int id) =&gt; db.Personeller.FirstOrDefault(p =&gt; p.PersonelID == id);\r\n        public IHttpActionResult PostAdd(Personel p)\r\n        {\r\n            if (p != null)\r\n            {\r\n                db.Personeller.Add(p);\r\n                db.SaveChanges();\r\n                return Ok(p);\r\n            }\r\n            return Ok(&quot;Personel ekleme ba\u015far\u0131s\u0131z.&quot;);\r\n        }\r\n        public IHttpActionResult PutUpdate(Personel p)\r\n        {\r\n            if (p != null)\r\n            {\r\n                Personeller updatePersonel = db.Personeller.FirstOrDefault(u =&gt; u.PersonelID == p.PersonelID);\r\n                updatePersonel.Adi = p.Adi;\r\n                updatePersonel.SoyAdi = p.SoyAdi;\r\n                updatePersonel.Unvan = p.Unvan;\r\n                db.SaveChanges();\r\n                return Ok(updatePersonel);\r\n            }\r\n            return Ok(&quot;Personel g\u00fcncelle\u015ftirme ba\u015far\u0131s\u0131z.&quot;);\r\n        }\r\n        &#x5B;HttpDelete]\r\n        public IHttpActionResult Remove(int id)\r\n        {\r\n            Personeller deletePersonel = db.Personeller.FirstOrDefault(p =&gt; p.PersonelID == id);\r\n            db.Personeller.Remove(deletePersonel);\r\n            db.SaveChanges();\r\n            return Ok($&quot;\\&quot;{deletePersonel.Adi} {deletePersonel.SoyAdi}\\&quot; isimli personel ba\u015far\u0131yla silinmi\u015ftir.&quot;);\r\n        }\r\n    }\r\n<\/pre>\n<p>\u015eimdi her\u015feyden \u00f6nce ilgili Web API projemizi \u00e7al\u0131\u015ft\u0131r\u0131yoruz. Dolay\u0131s\u0131yla IIS&#8217;de localhost \u00fczerinden bir yay\u0131n yaparak Angular uygulamas\u0131nda ba\u011flanaca\u011f\u0131m\u0131z Web API&#8217;yi canl\u0131 tutuyoruz.<\/p>\n<p>Angular uygulamam\u0131zda ise ilk olarak &#8220;app.module.ts&#8221; dosyas\u0131na gelerek Http servislerini kullanabilmek i\u00e7in &#8220;@angular\/common\/http&#8221; dizininde bulunan &#8220;HttpClientModule&#8221; mod\u00fcl\u00fcn\u00fc import etmemiz gerekmektedir. Bunun yan\u0131nda kullanaca\u011f\u0131m\u0131z web apinin de\u011fi\u015fkenlik g\u00f6stermeyen url&#8217;ini de <a href=\"http:\/\/www.gencayyildiz.com\/blog\/angular-4te-provide-usevalue-ile-global-deger-olusturma\/\" target=\"_blank\" rel=\"noopener\">buradaki<\/a> adreste anlat\u0131ld\u0131\u011f\u0131 gibi providers \u00f6zelli\u011fine eklememiz, birazdan kullan\u0131m a\u00e7\u0131s\u0131ndan bizlere olduk\u00e7a kolayl\u0131k sa\u011flayacakt\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { BrowserModule } from '@angular\/platform-browser';\r\nimport { NgModule } from '@angular\/core';\r\nimport { HttpClientModule } from &quot;@angular\/common\/http&quot;;\r\nimport { AppComponent } from '.\/app.component';\r\nimport { PersonelComponent } from '.\/components\/personel\/personel.component';\r\nimport { PersonelService } from '.\/services\/personel.service';\r\n\r\n@NgModule({\r\n  declarations: &#x5B;\r\n    AppComponent,\r\n    PersonelComponent\r\n  ],\r\n  imports: &#x5B;\r\n    BrowserModule,\r\n    HttpClientModule\r\n  ],\r\n  providers: &#x5B;{ provide: &quot;url&quot;, useValue: &quot;http:\/\/localhost:50875\/&quot; }, PersonelService],\r\n  bootstrap: &#x5B;AppComponent]\r\n})\r\nexport class AppModule { }\r\n<\/pre>\n<p>Ayriyetten web apiye g\u00f6z atarsan\u0131z e\u011fer yapm\u0131\u015f oldu\u011fumuz i\u015flemlerde kulland\u0131\u011f\u0131m\u0131z &#8220;Personel&#8221; s\u0131n\u0131f\u0131n\u0131n Angular&#8217;da kar\u015f\u0131l\u0131\u011f\u0131 olan s\u0131n\u0131f\u0131m\u0131z\u0131 olu\u015ftural\u0131m. Bunun nedeni; GET, POST ve PUT i\u015flemlerinde gelen yahut g\u00f6nderilen data yap\u0131lar\u0131n\u0131n web api&#8217;dekiyle uyum i\u00e7erisinde olabilmesini sa\u011flamakt\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nexport class Personel {\r\n    PersonelID?: number;\r\n    Adi: string;\r\n    SoyAdi: string;\r\n    Unvan: string;\r\n}\r\n<\/pre>\n<p>\u015eimdi ise s\u0131ra web api ile t\u00fcm ili\u015fkileri kuracak olan servisimizi yazmaya geldi.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { Injectable, Inject } from '@angular\/core';\r\nimport { HttpClient } from &quot;@angular\/common\/http&quot;;\r\nimport { inject } from '@angular\/core\/src\/render3';\r\nimport { Personel } from '..\/classes\/personel';\r\n\r\n@Injectable()\r\nexport class PersonelService {\r\n\r\n  constructor(private httpClient: HttpClient, @Inject(&quot;url&quot;) private url: string) { }\r\n\r\n  GetAll() {\r\n    return this.httpClient.get(this.url + &quot;api\/personel\/getall&quot;);\r\n  }\r\n  GetSingle(id: number) {\r\n    return this.httpClient.get(this.url + &quot;api\/personel\/getsingle\/&quot; + id);\r\n  }\r\n  PostAdd(personel: Personel) {\r\n    return this.httpClient.post(this.url + &quot;api\/personel\/postadd&quot;, personel);\r\n  }\r\n  PutUpdate(personel: Personel) {\r\n    return this.httpClient.put(this.url + &quot;api\/personel\/putupdate&quot;, personel);\r\n  }\r\n  Remove(id: number) {\r\n    return this.httpClient.delete(this.url + &quot;api\/personel\/remove\/&quot; + id);\r\n  }\r\n}\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz \u00fczere yazm\u0131\u015f oldu\u011fumuz servis &#8220;HttpClient&#8221; nesnesi \u00fczerinden verilen url&#8217;ye GET, POST, PUT veya DELETE taleplerinde bulunmakta ve parametrelerden gelen de\u011ferleri gerekti\u011fi taktirde ilgili i\u015flemlerde kullanmaktad\u0131r.<\/p>\n<p>Bu servisi kullanacak olan componentimizi olu\u015fturup a\u015fa\u011f\u0131daki gibi in\u015fa edelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nimport { Component, OnInit } from '@angular\/core';\r\nimport { Personel } from '..\/..\/classes\/personel';\r\nimport { PersonelService } from '..\/..\/services\/personel.service';\r\nimport { post } from 'selenium-webdriver\/http';\r\n\r\n@Component({\r\n  selector: 'app-personel',\r\n  templateUrl: '.\/personel.component.html',\r\n  styleUrls: &#x5B;'.\/personel.component.css']\r\n})\r\nexport class PersonelComponent implements OnInit {\r\n  personelList: Personel&#x5B;];\r\n  personel: Personel;\r\n  constructor(private personelService: PersonelService) { }\r\n\r\n  ngOnInit() {\r\n  }\r\n  GetAll() {\r\n    this.personelService.GetAll().subscribe((response: Personel&#x5B;]) =&gt; this.personelList = response);\r\n  }\r\n  GetSingle(id: number) {\r\n    this.personelService.GetSingle(id).subscribe((response: Personel) =&gt; this.personel = response);\r\n  }\r\n  PostAdd(adi: HTMLInputElement, soyAdi: HTMLInputElement, unvan: HTMLInputElement) {\r\n    alert(adi.value + &quot; &quot; + soyAdi.value + &quot; &quot; + unvan.value);\r\n\r\n    let postPersonel: Personel = {\r\n      Adi: adi.value,\r\n      SoyAdi: soyAdi.value,\r\n      Unvan: unvan.value\r\n    };\r\n\r\n    this.personelService.PostAdd(postPersonel).subscribe((response: Personel) =&gt; {\r\n      if (response) {\r\n        this.personelList.unshift(response);\r\n        this.personel = response;\r\n      }\r\n    });\r\n  }\r\n  PutUpdate(id: HTMLInputElement, adi: HTMLInputElement, soyAdi: HTMLInputElement, unvan: HTMLInputElement) {\r\n    let updatePersonel: Personel = {\r\n      PersonelID: Number(id.value),\r\n      Adi: adi.value,\r\n      SoyAdi: soyAdi.value,\r\n      Unvan: unvan.value\r\n    };\r\n    this.personelService.PutUpdate(updatePersonel).subscribe((response: Personel) =&gt; {\r\n      if (response) {\r\n        this.GetAll();\r\n        this.personel = response;\r\n      }\r\n    });\r\n  }\r\n  Remove(id: number) {\r\n    this.personelService.Remove(id).subscribe(response =&gt; {\r\n      alert(response);\r\n      this.GetAll();\r\n    });\r\n  }\r\n}\r\n<\/pre>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere t\u00fcm i\u015flemlerimiz bitmi\u015ftir. &#8220;PersonelComponent&#8221;indeki fonksiyonlar\u0131, serviste kullanacaklar\u0131 metotlarla birebir ayn\u0131 isimde yazm\u0131\u015f bulunmaktay\u0131m. Bu benim tercihim. Siz istedi\u011finiz fonksiyon isimlerini verebilirsiniz. \u0130\u00e7eriklerine bakarsan\u0131z e\u011fer servisteki fonksiyonun istedi\u011fi parametreyi kar\u015f\u0131layacak de\u011ferler olu\u015fturulmakta ve bunlar ilgili fonksiyona g\u00f6nderilmektedir.<\/p>\n<p>\u0130lgili componentin g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc de olu\u015ftural\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;div&gt;\r\n  &lt;h2&gt;GetAll - Remove&lt;\/h2&gt;\r\n  &lt;button (click)=&quot;GetAll()&quot;&gt;T\u00fcm Personelleri Getir&lt;\/button&gt;\r\n  &lt;div&gt;\r\n    &lt;ul&gt;\r\n      &lt;li *ngFor=&quot;let Personel of personelList&quot;&gt;{{Personel.PersonelID}} - {{Personel.Adi}} {{Personel.SoyAdi}} ({{Personel.Unvan}}) &lt;button (click)=&quot;Remove(Personel.PersonelID)&quot;&gt;Sil&lt;\/button&gt;&lt;\/li&gt;\r\n    &lt;\/ul&gt;\r\n  &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n&lt;hr&gt;\r\n&lt;div&gt;\r\n  &lt;h2&gt;GetSingle&lt;\/h2&gt;\r\n  &lt;input type=&quot;text&quot; #txtId&gt;\r\n  &lt;br&gt;\r\n  &lt;button (click)=&quot;GetSingle(txtId.value)&quot;&gt;ID'ye sahip olan\u0131 getir&lt;\/button&gt;\r\n  &lt;span *ngIf=&quot;personel&quot;&gt;{{personel.Adi + &quot; &quot; + personel.SoyAdi + &quot; &quot; + personel.Unvan}}&lt;\/span&gt;\r\n&lt;\/div&gt;\r\n&lt;hr&gt;\r\n&lt;div&gt;\r\n  &lt;h2&gt;PostAdd&lt;\/h2&gt;\r\n  Ad\u0131 :\r\n  &lt;br&gt;\r\n  &lt;input type=&quot;text&quot; #txtAdi \/&gt;\r\n  &lt;br&gt; Soyad\u0131 &amp;nbsp; :\r\n  &lt;br&gt;\r\n  &lt;input type=&quot;text&quot; #txtSoyadi \/&gt;\r\n  &lt;br&gt; Unvan :\r\n  &lt;br&gt;\r\n  &lt;input type=&quot;text&quot; #txtUnvan \/&gt;\r\n  &lt;br&gt;\r\n  &lt;button (click)=&quot;PostAdd(txtAdi, txtSoyadi, txtUnvan)&quot;&gt;Personel Ekle&lt;\/button&gt;\r\n&lt;\/div&gt;\r\n&lt;hr&gt;\r\n&lt;div&gt;\r\n  &lt;h2&gt;PutUpdate&lt;\/h2&gt;\r\n  ID :\r\n  &lt;br&gt;\r\n  &lt;input type=&quot;text&quot; #txtID \/&gt;\r\n  &lt;br&gt; Ad\u0131 :\r\n  &lt;br&gt;\r\n  &lt;input type=&quot;text&quot; #txtAdi2 \/&gt;\r\n  &lt;br&gt; Soyad\u0131 :\r\n  &lt;br&gt;\r\n  &lt;input type=&quot;text&quot; #txtSoyadi2 \/&gt;\r\n  &lt;br&gt; Unvan :\r\n  &lt;br&gt;\r\n  &lt;input type=&quot;text&quot; #txtUnvan2 \/&gt;\r\n  &lt;br&gt;\r\n  &lt;button (click)=&quot;PutUpdate(txtID, txtAdi2, txtSoyadi2, txtUnvan2)&quot;&gt;Personel G\u00fcncelle&lt;\/button&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p>Art\u0131k s\u0131ra tek tek fonksiyonlar\u0131m\u0131z\u0131 denemeye gelmi\u015f bulunmaktad\u0131r.<\/p>\n<ul>\n<li><strong>GetAll<\/strong><br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8383 size-thumbnail\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-150x150.gif\" alt=\"Angular \u0130le Web API Tetikleme\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-150x150.gif 150w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-160x160.gif 160w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-320x320.gif 320w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>GetAll<\/li>\n<li><strong>GetSingle<\/strong><br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-1.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8385 size-thumbnail\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-1-150x150.gif\" alt=\"Angular \u0130le Web API Tetikleme\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-1-150x150.gif 150w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-1-160x160.gif 160w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-1-320x320.gif 320w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/li>\n<li><strong>PostAdd<\/strong><br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-2.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8388 size-thumbnail\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-2-150x150.gif\" alt=\"Angular \u0130le Web API Tetikleme\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-2-150x150.gif 150w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-2-160x160.gif 160w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-2-320x320.gif 320w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/li>\n<li><strong>PutUpdate<\/strong><br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-3.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8393 size-thumbnail\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-3-150x150.gif\" alt=\"Angular \u0130le Web API Tetikleme\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-3-150x150.gif 150w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-3-160x160.gif 160w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-3-320x320.gif 320w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/li>\n<li><strong>Remove<\/strong><br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-4.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8395 size-thumbnail\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-4-150x150.gif\" alt=\"Angular \u0130le Web API Tetikleme\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-4-150x150.gif 150w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-4-160x160.gif 160w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/07\/Angular-\u0130le-Web-API-Tetikleme-4-320x320.gif 320w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/li>\n<\/ul>\n<p>Evet&#8230; Angular ile Web Apilerin nas\u0131l tetiklendi\u011fini g\u00f6rm\u00fc\u015f olduk.<\/p>\n<p>Bir sonraki i\u00e7eri\u011fimizde Token Authentication uygulanan web apilere nas\u0131l eri\u015fim sa\u011flayaca\u011f\u0131m\u0131z\u0131 inceleyece\u011fiz.<\/p>\n<p>Siz bu i\u00e7eri\u011fi okurken bende bir yandan di\u011fer makaleyi haz\u0131rlayay\u0131m&#8230;<\/p>\n<p>O halde g\u00f6r\u00fc\u015fmek \u00fczere&#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, Bu i\u00e7eri\u011fimizde Angular ile Web API tetiklemeyi inceliyor olaca\u011f\u0131z. \u0130lk olarak Asp.NET MVC \u2013 Web Api Nedir? Nas\u0131l Olu\u015fturulur? ba\u015fl\u0131kl\u0131 makalemde ele ald\u0131\u011f\u0131m\u0131z gibi bir Web API olu\u015fturacak ve ard\u0131ndan bu Web API&#8217;ye&#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":7246,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2144,11,2402],"tags":[2156,2412,2413,2399],"class_list":["post-8371","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular-4","category-asp-net-mvc","category-web-api","tag-angular","tag-angular-ile-web-api-tetikleme","tag-angular-web-api","tag-web-api"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8371","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=8371"}],"version-history":[{"count":29,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8371\/revisions"}],"predecessor-version":[{"id":8406,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8371\/revisions\/8406"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/7246"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=8371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=8371"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=8371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}