RESTful Web Hizmetleri Eğitimi: Örnekle REST API Nedir?

Huzurlu Web Hizmetleri Nedir?

Huzurlu Web Servisleri REST mimarisi üzerine inşa edilmiş hafif, sürdürülebilir ve ölçeklenebilir bir hizmettir. Restful Web Hizmeti, uygulamanızdan gelen API'yi güvenli, tekdüze ve durumsuz bir şekilde çağıran istemciye sunar. Çağıran istemci, Restful hizmetini kullanarak önceden tanımlanmış işlemleri gerçekleştirebilir. REST için temel protokol HTTP'dir. REST, REpresentational State Transfer'ın kısaltmasıdır.

RESTful'un Temel Unsurları

REST Web hizmetleri başlangıcından bu yana gerçekten çok yol kat etti. 2002 yılında Web konsorsiyumu WSDL ve SOAP web hizmetlerinin tanımını yayınladı. Bu, web hizmetlerinin nasıl uygulandığına ilişkin standardı oluşturdu.

2004 yılında web konsorsiyumu ayrıca RESTful adı verilen ek bir standardın tanımını da yayınladı. Geçtiğimiz birkaç yılda bu standart oldukça popüler hale geldi. Ve aralarında Facebook ve Twitter'ın da bulunduğu dünya çapındaki birçok popüler web sitesi tarafından kullanılıyor.

REST, belirli bir ortamda bulunan kaynaklara erişmenin bir yoludur. Örneğin, önemli belgeleri, resimleri veya videoları barındıran bir sunucunuz olabilir. Bunların hepsi birer kaynak örneğidir. Bir istemcinin, örneğin bir web tarayıcısının bu kaynaklardan herhangi birine ihtiyacı varsa, bu kaynaklara erişmek için sunucuya bir istek göndermesi gerekir. Artık REST hizmetleri bu kaynaklara nasıl erişilebileceğinin bir yolunu tanımlıyor.

RESTful uygulamasının temel unsurları şunlardır:

  1. Kaynaklar – İlk anahtar unsur kaynağın kendisidir. Bir sunucudaki bir web uygulamasının birden fazla çalışanın kayıtlarına sahip olduğunu varsayalım. Web uygulamasının URL'sinin şöyle olduğunu varsayalım: https://demo.guru99.com. Artık REST hizmetleri aracılığıyla bir çalışan kayıt kaynağına erişmek için şu komut verilebilir: https://demo.guru99.com/employee/1 – Bu komut web sunucusuna, çalışan numarası 1 olan çalışanın ayrıntılarını sağlamasını söyler.
  2. Fiiller İste – Bunlar kaynakla ne yapmak istediğinizi açıklar. Bir tarayıcı, veri almak istediği uç noktaya talimat vermek için bir GET fiili yayınlar. Ancak POST, PUT ve DELETE gibi başka birçok fiil de mevcuttur. Yani örnek durumunda https://demo.guru99.com/employee/1 , web tarayıcısı aslında çalışan kaydının ayrıntılarını almak istediği için bir GET Fiili gönderiyor.
  3. Üstbilgi İste – Bunlar istekle birlikte gönderilen ek talimatlardır. Bunlar, gereken yanıt türünü veya yetkilendirme ayrıntılarını tanımlayabilir.
  4. İstek Gövdesi – Veri istekle birlikte gönderilir. Veri normalde REST web servislerine bir POST isteği yapıldığında istekte gönderilir. Bir POST çağrısında, istemci aslında REST web servislerine sunucuya bir kaynak eklemek istediğini söyler. Bu nedenle, istek gövdesi sunucuya eklenmesi gereken kaynağın ayrıntılarına sahip olur.
  5. Yanıt Gövdesi – Bu, yanıtın ana gövdesidir. RESTful API örneğimizde web sunucusunu istek yoluyla sorgulayacak olsaydık https://demo.guru99.com/employee/1 , web sunucusu Yanıt Gövdesinde çalışanın tüm ayrıntılarını içeren bir XML belgesi döndürebilir.
  6. Yanıt Durumu kodları – Bu kodlar web sunucusundan gelen yanıtla birlikte döndürülen genel kodlardır. Bunun bir örneği, istemciye bir yanıt döndürülürken herhangi bir hata olmaması durumunda normalde döndürülen 200 kodudur.

Dinlendirici Yöntemler

Aşağıdaki şema çoğunlukla tüm fiilleri (POST, GET, PUT ve DELETE) ve bunların ne anlama geldiğini gösteren bir REST API örneğini göstermektedir.

Lokasyonda tanımlı bir RESTful web servisimiz olduğunu varsayalım. https://demo.guru99.com/employee . İstemci bu web servisine herhangi bir istekte bulunduğunda, GET, POST, DELETE ve PUT gibi normal HTTP fiillerinden herhangi birini belirtebilir. İlgili fiiller müşteri tarafından gönderilmiş olsaydı ne olurdu aşağıdadır.

  1. POST – Bu, RESTful web hizmetini kullanarak yeni bir çalışan oluşturmak için kullanılacaktır
  2. GET – Bu, RESTful web hizmetini kullanan tüm çalışanların bir listesini almak için kullanılacaktır
  3. PUT – Bu, RESTful web hizmetini kullanan tüm çalışanların güncellenmesi için kullanılacaktır
  4. SİL – Bu, RESTful hizmetlerini kullanan tüm çalışanları silmek için kullanılacaktır

Gelin sadece tek bir kayıt perspektifinden bakalım. Diyelim ki çalışan numarası 1 olan bir çalışan kaydı vardı.

Aşağıdaki eylemlerin kendi anlamları olacaktır.

  1. POST – Çalışan 1'in önceden oluşturulmuş verilerini getirdiğimiz için bu geçerli olmayacaktır.
  2. GET – Bu, RESTful web servisini kullanarak Çalışan numarası 1 olan çalışanın ayrıntılarını almak için kullanılır.
  3. PUT – Bu, RESTful web servisini kullanarak Çalışan numarasını 1 olarak kullanan çalışanın ayrıntılarını güncellemek için kullanılır.
  4. SİL – Bu, Çalışan numarası 1 olan çalışanın ayrıntılarını silmek için kullanılır

Dinlendirici Yöntemler

Neden Dinlendirici

Restful'un popülerlik kazanmasının başlıca nedenleri şunlardır:

1. Heterojen diller ve ortamlar – Bu, daha önce gördüğümüzle aynı olan temel nedenlerden biridir. SABUN gibi.

  • Çeşitli programlama dilleri üzerine kurulu web uygulamalarının birbirleriyle iletişim kurmasını sağlar.
  • Restful servislerinin yardımıyla bu web uygulamaları farklı ortamlarda bulunabilir, bazıları Windowsve diğerleri Linux'ta olabilir.

Ama sonuçta ortam ne olursa olsun, sonuç her zaman aynı olmalı, birbirleriyle konuşabilmeliler. Huzurlu web hizmetleri, bu esnekliği çeşitli programlama dilleri ve platformlar üzerine kurulu uygulamalara birbirleriyle konuşabilmeleri için sunar.

Aşağıdaki resimde Facebook, Twitter ve Google gibi diğer uygulamalarla konuşma zorunluluğu olan bir web uygulaması örneği verilmektedir.

Artık bir istemci uygulamasının Facebook, Twitter vb. sitelerle çalışması gerekiyorsa, muhtemelen Facebook, Google ve Twitter'ın hangi dil üzerine kurulduğunu ve ayrıca hangi platform üzerine oluşturulduklarını da bilmeleri gerekir.

Buna dayanarak web uygulamamız için arayüz kodunu yazabiliriz, ancak bu bir kabusa dönüşebilir.

Facebook, Twitter ve Google, işlevlerini Restful web hizmetleri biçiminde ortaya koyuyor. Bu, herhangi bir istemci uygulamasının bu web hizmetlerini REST aracılığıyla çağırmasına olanak tanır.

Dinlenmeye İhtiyaç Var

2. Cihazlar Olayı – Günümüzde her şeyin üzerinde çalışması gerekiyor Telefon İster mobil cihaz, ister dizüstü bilgisayarlar, hatta araba sistemleri olsun.

Bu cihazlarda normal web uygulamalarıyla iletişim kuracak uygulamaları kodlamaya çalışmanın ne kadar çaba gerektirdiğini hayal edebiliyor musunuz? Yine Restful API'leri bu işi daha basit hale getirebilir çünkü 1 numaralı noktada belirtildiği gibi, cihazın altta yatan katmanının ne olduğunu bilmenize gerçekten gerek yok.

3. Nihayet Bulut olayı – Her şey buluta taşınıyor. Uygulamalar yavaş yavaş bulut tabanlı sistemlere geçiyor. Azure or Amazon. Azure ve Amazon Restful mimarisine dayalı çok sayıda API sağlar. Bu nedenle, uygulamaların artık Bulut ile uyumlu hale getirilecek şekilde geliştirilmesi gerekir. Dolayısıyla, tüm Bulut tabanlı mimariler REST ilkesine göre çalıştığından, Bulut tabanlı hizmetlerden en iyi şekilde yararlanmak için web hizmetlerinin REST hizmetleri tabanlı mimaride programlanması daha mantıklıdır.

dinlendirici Archidoku

RESTful veya REST tarzı olarak kabul edilen bir uygulama veya mimari aşağıdaki özelliklere sahiptir

1. Durum ve işlevsellik dağıtılmış kaynaklara bölünmüştür – Bu, her kaynağa GET, POST, PUT veya DELETE gibi normal HTTP komutlarıyla erişilebilmesi gerektiği anlamına gelir. Yani eğer birisi bir sunucudan dosya almak istiyorsa, GET isteğini gönderip dosyayı alabilmelidir. Sunucuya bir dosya koymak istiyorlarsa POST veya PUT isteğini yayınlayabilmeleri gerekir. Ve son olarak, eğer sunucudan bir dosyayı silmek isterlerse, DELETE isteğini gönderebilirler.

2. Mimari istemci/sunucu, durumsuz, katmanlıdır ve önbelleğe almayı destekler

  • İstemci-sunucu, sunucunun uygulamayı barındıran web sunucusu olabildiği ve istemcinin web tarayıcısı kadar basit olabildiği tipik mimaridir.
  • Durumsuz, uygulamanın durumunun REST'te korunmadığı anlamına gelir. Örneğin, DELETE komutunu kullanarak bir sunucudan bir kaynağı silerseniz, bu silme bilgisinin bir sonraki isteğe iletilmesini bekleyemezsiniz.

Kaynağın silindiğinden emin olmak için GET isteğini göndermeniz gerekir. GET isteği ilk önce sunucudaki tüm kaynakları almak için kullanılacaktır. Bundan sonra kaynağın gerçekten silinip silinmediğini görmek gerekir.

RESTFul İlkeleri ve Kısıtlamalar

REST mimarisi aşağıda açıklanan birkaç özelliğe dayanır. Herhangi bir RESTful web hizmetinin RESTful olarak adlandırılabilmesi için aşağıdaki özelliklere uyması gerekir. Bu özellikler, RESTful tabanlı hizmetlerle çalışırken uyulması gereken tasarım ilkeleri olarak da bilinir.

  1. RESTFul İstemci-Sunucu

    RESTFul İlkeleri ve Kısıtlamalar

Bu, REST tabanlı bir mimarinin en temel gereksinimidir. Bu, sunucunun istemciye gerekli işlevselliği sağlayacak bir RESTful web hizmetine sahip olacağı anlamına gelir. İstemci, sunucudaki web hizmetine bir istek gönderir. Sunucu, isteği reddeder veya uyar ve istemciye yeterli bir yanıt sağlar.

  1. Vatansız

Durum bilgisi olmayan kavramı, gerekli tüm bilgilerin sunucuya sağlanmasının istemciye bağlı olduğu anlamına gelir. Sunucunun yanıtı uygun şekilde işleyebilmesi için bu gereklidir. Sunucu, istemciden gelen istekler arasında herhangi bir bilgi saklamamalıdır. Bu çok basit, bağımsız bir soru-cevap dizisidir. İstemci bir soru sorar, sunucu buna uygun şekilde cevap verir. Müşteri başka bir soru soracaktır. Sunucu önceki soru-cevap senaryosunu hatırlamayacak ve yeni soruyu bağımsız olarak yanıtlaması gerekecektir.

  1. Önbellek

RESTFul İlkeleri ve Kısıtlamalar

Önbellek kavramı, son noktada açıklanan vatansızlık sorununa yardımcı olmak içindir. Her sunucu istemci isteği doğası gereği bağımsız olduğundan, bazen istemci sunucudan aynı isteği tekrar isteyebilir. Bu, geçmişte zaten talep edilmiş olmasına rağmen. Bu istek sunucuya gidecek ve sunucu bir yanıt verecektir. Bu, ağdaki trafiği artırır. Önbellek, sunucuya önceden gönderilmiş olan istekleri depolamak için istemcide uygulanan bir kavramdır. Yani aynı istek istemci tarafından verilirse sunucuya gitmek yerine önbelleğe gider ve gerekli bilgiyi alır. Bu, istemciden sunucuya giden ve gelen ağ trafiği miktarından tasarruf sağlar.

  1. Katmanlı Sistem

Katmanlı sistem kavramı, istemci ile RESTFul web hizmetini barındıran gerçek sunucu arasına ara yazılım katmanı gibi herhangi bir ek katmanın eklenebilmesidir (Ara yazılım katmanı, tüm iş mantığının oluşturulduğu yerdir. Bu ekstra bir hizmet olabilir). istemcinin web servisine çağrı yapmadan önce etkileşimde bulunabileceği şekilde oluşturulmuştur.) Ancak istemci ile sunucu arasındaki etkileşimi bozmaması için bu katmanın tanıtımının şeffaf olması gerekir.

  1. Arayüz/Tekdüzen Sözleşme

Bu, RESTful web hizmetlerinin nasıl çalışması gerektiğinin altında yatan tekniktir. RESTful temel olarak HTTP web katmanında çalışır ve sunucudaki kaynaklarla çalışmak için aşağıdaki anahtar fiilleri kullanır

  • POST – Sunucuda bir kaynak oluşturmak için
  • GET – Sunucudan bir kaynak almak için
  • PUT – Bir kaynağın durumunu değiştirmek veya güncellemek için
  • DELETE – Sunucudan bir kaynağı kaldırmak veya silmek için

ASP.NET'te ilk Restful web hizmetinizi oluşturun

Şimdi bu REST API eğitiminde ASP.NET'te Restful web hizmetinin nasıl oluşturulacağını öğreneceğiz:

Web hizmetleri çeşitli dillerde oluşturulabilir. REST tabanlı hizmetler oluşturmak için birçok entegre geliştirme ortamı kullanılabilir.

Bu RESTful API örneğinde, Visual Studio kullanarak .Net'te REST uygulamamızı oluşturacağız. Örneğimizde, Restful web servisleri için aşağıdaki REST servis örneğini taklit edeceğiz.

Aşağıdaki veri kümesi üzerinde çalışacak bir Restful web servisimiz olacak.

Aşağıdaki veri kümesi, Tutorialid'i temel alarak sahip oldukları Eğitimleri ortaya çıkaran bir şirkete sahip olmanın bir REST API örneğini temsil etmektedir.

Öğretici kimliği ÖğreticiAdı
0 Diziler
1 kuyruklar
2 Yığınları

REST API eğitim örneğimizde aşağıdaki Restful Fiilleri uygulayacağız.

  1. Eğitimi ALIN – Bir müşteri bu Restful API'yi çağırdığında, kendisine web hizmetindeki tüm Eğitim seti verilecektir.
  2. Öğreticiyi/Eğitici kimliğini GET – Bir müşteri bu Restful API'yi çağırdığında, ona müşteri tarafından gönderilen Tutorialid'ye göre Tutorial adı verilecektir.
  3. POST Eğitimi/Eğitim adı – Bir müşteri bu Restful API'yi çağırdığında, bir Tutorialname eklenmesi için bir istek gönderecektir. Web hizmeti daha sonra gönderilen Eğitim adını koleksiyona ekleyecektir.
  4. Öğreticiyi/Eğitici kimliğini SİL– Bir müşteri bu Restful API'yi çağırdığında, müşteri Tutorialid'ye dayalı olarak bir Tutorialname'in silinmesi için bir istek gönderecektir. Web hizmeti daha sonra gönderilen Eğitim adını koleksiyondan silecektir.

Yukarıdaki uygulamayı gerçekleştiren ilk RESTful web hizmetlerimizi oluşturmak için bu RESTful API eğitiminde aşağıdaki adımları takip edelim.

İlk Huzurlu Web Hizmetinizi Nasıl Oluşturabilirsiniz?

) 1 Adım Yeni proje oluşturun.
İlk adım boş bir alan oluşturmaktır Asp.Net Web uygulaması. Visual Studio 2013'ten, Dosya->Yeni proje menü seçeneğine tıklayın.

Huzurlu Web Hizmeti Oluşturun

Yeni Proje seçeneğine tıkladığınızda, Visual Studio size proje türünü seçmeniz ve projenin gerekli ayrıntılarını vermeniz için başka bir iletişim kutusu sunacaktır. Bu, bu RESTful API eğitiminin bir sonraki adımında açıklanmıştır

) 2 Adım Proje adını ve yerini girin.

  1. Öncelikle RESTful web hizmetlerini seçtiğinizden emin olun C# ASP.NET Web uygulamasının web şablonu. Web servisleri projesi oluşturmak için projenin bu türde olması gerekir. Bu seçeneği seçerek, Visual Studio daha sonra herhangi bir web tabanlı uygulama tarafından ihtiyaç duyulan gerekli dosyaları eklemek için gerekli adımları gerçekleştirecektir.
  2. Projenize bizim örneğimizde “Webservice.REST” olarak verilen bir isim verin.
  3. Daha sonra proje dosyalarının saklanacağı konumu belirttiğinizden emin olun.

Huzurlu Web Hizmeti Oluşturun

İşlem tamamlandığında Visual Studio 2013'teki çözüm gezgininizde proje dosyasının oluşturulduğunu göreceksiniz.

Huzurlu Web Hizmeti Oluşturun

) 3 Adım Web hizmeti dosyasını oluşturun.
Bir sonraki adım, RESTful web servisine sahip olacak web servis dosyasını oluşturmaktır.

  1. Öncelikle aşağıda gösterildiği gibi proje dosyasına sağ tıklayın

Huzurlu Web Hizmeti Oluşturun

  1. Bu adımda,
    1. Proje dosyasına sağ tıklayın
    2. “Ekle->yeni öğe” seçeneğini seçin.

Huzurlu Web Hizmeti Oluşturun

Görünen iletişim kutusunda aşağıdakileri yapmanız gerekir

  1. WCF Hizmeti seçeneğini seçin (Ajax etkin) – Bu türden bir dosya seçin, Visual studio RESTful web hizmeti oluşturmanıza yardımcı olacak bazı temel kodları eklemek için. WCF'nin açılımı Windows Yakın İletişim Foundation. WCF, çeşitli platformların uygulamaları veya aynı platformun TCP, HTTP, HTTPS gibi çeşitli protokoller üzerinden iletişim kurması için bir kütüphanedir. Ajax temel olarak Asenkron'dur JavaSenaryo ve XML. AJAX, sahne arkasında sunucuyla küçük miktarda veri alışverişi yaparak web sayfalarının eşzamansız olarak güncellenmesini sağlar.
  2. Daha sonra bizim durumumuzda TutorialService olan hizmete bir ad verin.
  3. Son olarak hizmeti çözüme eklemek için Ekle düğmesine tıklayın.

Huzurlu Web Hizmeti Oluşturun

) 4 Adım Bir konfigürasyon yapın.
Bir sonraki adım, bu projenin RESTful web hizmetleriyle çalışmasını tamamlamasını sağlayacak bir yapılandırma değişikliği yapmaktır. Bu, adı verilen dosyada bir değişiklik yapılmasını gerektirir. Web.config. Bu dosya Web hizmeti proje dosyasıyla aynı pencerede görünür. Web.config dosyası, web uygulamasının olması gerektiği gibi çalışmasını sağlayan tüm yapılandırmaları içerir. Yapılan değişiklik aslında uygulamanın saf bir RESTful web hizmeti olarak veri gönderip almasına olanak tanıyor.

  1. Kodu açmak için Web.config dosyasına tıklayın

Huzurlu Web Hizmeti Oluşturun

  1. Hat için bul

Huzurlu Web Hizmeti Oluşturun

  1. Satırı şu şekilde değiştir:

Huzurlu Web Hizmeti Oluşturun

) 5 Adım Uygulama için kodumuzu ekleyin.
Bu RESTful API eğitimindeki bir sonraki adım, uygulama için kodumuzu eklemektir. Aşağıda belirtilen kodların tamamının TutorialService.svc dosyasına yazılması gerekmektedir.

  1. İlk bit, programımızda kullanılacak verilerimizi temsil edecek kodu eklemektir. Böylece “Diziler”, “Kuyruklar” ve “Yığınlar” değerlerini içeren dize değişkenlerinin bir listesine sahip olacağız. Bu, barındırma web hizmetimiz aracılığıyla sunulan eğitimlerin adını temsil edecektir.

Huzurlu Web Hizmeti Oluşturun

namespace Webservice.REST
{
	[ServiceContract(Namespace = "")]
	[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed
	public class TutorialService
	{
		private static List<String> lst = new List<String>
		(new String[] {"Arrays","Queues","Stacks"});

) 6 Adım GET yöntemimizin kodunu tanımlayın.
Daha sonra GET metodumuzun kodunu tanımlayacağız. Bu kod aynı TutorialService.svc dosyasında da bulunacaktır. Bu kod, hizmeti tarayıcımızdan çağırdığımızda çalışacaktır.

Aşağıda belirtilen senaryoyu gerçekleştirmek için aşağıdaki yöntem kullanılacaktır.

  • Bir kullanıcı mevcut tüm Öğreticilerin bir listesini istiyorsa, bunu gerçekleştirmek için aşağıdaki kodun yazılması gerekir.

Huzurlu Web Hizmeti Oluşturun

[WebGet(UriTemplate="/Tutorial")]

public String GetAllTutorial()
{
	int count = 1st.Count;
	String TutorialList = "";
	for (int i = 0; i < count; i++)
	TutorialList = TutorialList + lst[i] + ",";
	return TutorialList;
}

Kod Açıklaması:-

  1. Kodun ilk satırı en önemlisidir. Bu metodu bir URL üzerinden nasıl çağırabileceğimizi tanımlamak için kullanılır. Yani eğer web hizmetimizin bağlantısı http://localhost:52645/TutorialService.svc ve '/Eğitim'i URL'ye şu şekilde eklersek: http://localhost:52645/TutorialService.svc/Tutorial , yukarıdaki kod çağrılacaktır. 'WebGet' özelliği, bu yöntemin bir RESTful yöntemi olmasını ve böylece GET fiili aracılığıyla çağrılabilmesini sağlayan bir parametredir.
  2. Kodun bu bölümü, 'lst' değişkenindeki dize listemizi gözden geçirmek ve bunların hepsini çağıran programa döndürmek için kullanılır.

) 7 Adım Çıktıyı döndürün.
Aşağıdaki kod, Eğitim Hizmetine bir Eğitim kimliği ile bir GET çağrısı yapıldığında, Eğitim kimliğini temel alarak karşılık gelen Eğitim Adını döndürmesini sağlar.

Huzurlu Web Hizmeti Oluşturun

[WebGet (UriTemplate = "/Tutorial/{Tutorialid}")]

public String GetTutorialbyID(String Tutorialid)
{
	int pid;
	Int32.TryParse(Tutorialid, out pid);
	return lst[pid];
}

Kod Açıklaması:-

  1. Kodun ilk satırı en önemlisidir. Bu metodu bir URL üzerinden nasıl çağırabileceğimizi tanımlamak için kullanılır. Yani eğer web hizmetimizin bağlantısı http://localhost:52645/TutorialService.svc ve URL'ye '/Tutorial/{Tutorialid}' ifadesini eklersek web hizmetini şu şekilde çağırabiliriz: http://localhost:52645/TutorialService.svc/Tutorial/1 Örnek olarak. Web hizmetinin daha sonra Öğretici kimliği#1'e sahip olan Öğretici adını döndürmesi gerekecektir.
  2. Kodun bu bölümü, web yöntemine iletilen Eğitim kimliğini içeren "Eğitim adını" döndürmek için kullanılır.
  • Varsayılan olarak hatırlanması gereken şey, tarayıcıdaki URL'ye iletilen şeyin bir dize olduğudur.
  • Ancak listemizdeki Index'in bir tamsayı olması gerektiğini unutmamalısınız, bu nedenle önce Tutorialid'i bir Tamsayıya dönüştürmek için gerekli kodu ekliyoruz ve ardından onu listemizdeki dizin konumuna erişmek için kullanıyoruz ve
  • Daha sonra değeri uygun şekilde çağıran programa döndürün.

) 8 Adım POST yönteminin kodunu yazın.
Bir sonraki adım POST yöntemimizin kodunu yazmaktır. Bu yöntem, POST yöntemi aracılığıyla Öğretici listemize bir dize değeri eklemek istediğimizde çağrılacaktır. Örneğin, "Yazılım Testi" Eğitim adını eklemek istiyorsanız POST yöntemini kullanmanız gerekir.

Huzurlu Web Hizmeti Oluşturun

Kod Açıklaması:-

  1. İlk satır, yöntemimize eklenen 'WebInvoke' özelliğidir. Bu, yöntemin POST çağrısı aracılığıyla çağrılmasına olanak tanır. Bir RESTFul web hizmetine değerler gönderilirken değerlerin bu formatta olması gerektiğinden, requestFormat ve ResponseFormat özniteliğinin JSON olarak belirtilmesi gerekir.
  2. Kodun ikinci satırı, POST çağrısı aracılığıyla iletilen dize değerini mevcut Eğitim dizeleri listemize eklemek için kullanılır.

) 9 Adım DELETE işlemini gerçekleştirmek için yöntem ekleyin.
Son olarak DELETE işlemini gerçekleştirecek yöntemimizi ekleyeceğiz. Bu yöntem, mevcut bir dize değerini DELETE yöntemi aracılığıyla Öğretici listemizden silmek istediğimizde çağrılacaktır.

Huzurlu Web Hizmeti Oluşturun

[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Json,
	UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json,
	BodyStyle = WebMessageBodyStyle.Wrapped)]
	
public void DeleteTutorial(String Tutorialid)
{
	int pid;
	Int32.TryParse(Tutorialid, out pid);
	1st.RemoveAt(pid);
}

Kod Açıklaması:-

  1. İlk satır, yöntemimize eklenen 'WebInvoke' özelliğidir. Bu, yöntemin POST çağrısı aracılığıyla çağrılmasına olanak tanır. Bir RESTFul web hizmetine değerler gönderilirken değerlerin bu formatta olması gerektiğinden, requestFormat ve ResponseFormat özniteliğinin JSON olarak belirtilmesi gerekir. Yöntem parametresinin "DELETE" olarak ayarlandığını unutmayın. Bu, DELETE fiilini her söylediğimizde bu yöntemin çağrılacağı anlamına gelir.
  2. İkinci kod satırı, DELETE çağrısı yoluyla gönderilen Tutorialid'yi almak ve daha sonra bu id'yi listemizden silmek için kullanılır. ( Int32 Koddaki işlev, Eğitim Kimliğini bir dize değişkeninden bir tam sayıya dönüştürmek için kullanılır).

İlk Restful web hizmetinizi çalıştırma

Artık yukarıdaki bölümde web servisimizin tamamını oluşturduğumuza göre. Tutorial hizmetini herhangi bir istemciden çağrılabilecek şekilde nasıl çalıştırabileceğimizi görelim.

Web hizmetini çalıştırmak için lütfen aşağıdaki adımları izleyin

) 1 Adım Proje dosyasına sağ tıklayın – Webservice.REST

Restful Web Hizmetini Çalıştırma

) 2 Adım 'Başlangıç ​​Projesi Olarak Ayarla' menü seçeneğini seçin. Bu, Visual Studio tüm çözümü çalıştırdığında bu projenin çalıştırılmasını sağlayacaktır

Restful Web Hizmetini Çalıştırma

) 3 Adım Bir sonraki adım projenin kendisini çalıştırmaktır. Şimdi sisteme yüklenen varsayılan tarayıcıya bağlı olarak, uygun tarayıcı adı Visual Studio'daki çalıştır düğmesinin yanında gelecektir. Bizim durumumuzda, Google Chrome gösteriliyor. Sadece bu butona tıklayın.

Restful Web Hizmetini Çalıştırma

Çıktı:-

Proje çalıştırıldığında TutorialService.svc/Tutorial bölümünüze göz atabilir ve aşağıdaki çıktıyı alabilirsiniz.

Restful Web Hizmetini Çalıştırma

Yukarıdaki çıktıda,

  • Tarayıcının 'GET' fiilini çağırdığını ve web hizmetinde 'GetAllTutorial' yöntemini çalıştırdığını görebilirsiniz. Bu modül, web hizmetimiz tarafından sunulan tüm Eğitimleri görüntülemek için kullanılır.

İlk Restful web hizmetinizi test etme

Yukarıdaki bölümde, 'GET' fiilini çalıştırmak ve 'GetAllTutorial'ı çağırmak için tarayıcıyı nasıl kullanacağımızı zaten gördük.

  1. Şimdi tarayıcıyı kullanarak aşağıdaki kullanım senaryosunu çalıştıralım.

GET Tutorial/Tutorialid – Bir müşteri bu Restful API'yi çağırdığında, ona müşteri tarafından gönderilen Tutorialid'ye dayalı olarak Tutorial adı verilecektir.

Tarayıcınızda, URL'deki Öğretici sözcüğünden sonra /1 dizesini ekleyin. Enter tuşuna basarsanız aşağıdaki çıktıyı alacaksınız

Huzurlu Web Hizmetinin Test Edilmesi

Artık Öğretici Diziler listemizdeki 1 sayısına karşılık gelen Queue'ların çıktısını göreceksiniz. Bu, 'GetTutorialbyID' yönteminin artık Web hizmetimizden çağrıldığı anlamına gelir. Bu aynı zamanda 1 değerinin tarayıcı aracılığıyla web hizmetimize ve yöntemimize başarılı bir şekilde aktarıldığını ve bu nedenle tarayıcıda buna karşılık gelen doğru "Kuyruklar" değerini aldığımızı gösterir.

  1. Daha sonra aşağıdaki senaryoyu uygulayarak web servisimizi tüketelim. Bunun için “adlı aracı yüklemeniz gerekiyor.FiddlerSiteden ücretsiz indirilebilen bir araçtır.

POST Eğitimi/Eğitim adı – Bir müşteri bu Restful API'yi çağırdığında, müşteri bir Eğitim adı eklemek için bir istek gönderecektir. Web hizmeti daha sonra gönderilen Eğitim adını koleksiyona ekleyecektir.

Filddler aracını çalıştırıp aşağıdaki adımları gerçekleştirin;

  1. Besteci bölümüne gidin. Bu, herhangi bir web uygulamasına gönderilebilecek istekler oluşturmak için kullanılır.
  2. İstek türünün "POST" olduğundan ve doğru URL'nin vurulduğundan emin olun; bizim durumumuzda bu URL olmalıdır. http://localhost:52645/TutorialService.svc/Tutorial
  3. İçerik Türünün application/json olarak işaretlendiğinden emin olun. Web hizmetimizdeki POST istek yöntemimizin yalnızca json stili verileri kabul ettiğini unutmayın; bu nedenle, uygulamamıza bir istek gönderirken bunun belirtildiğinden emin olmamız gerekir.
  4. Son olarak verilerimizi girmemiz gerekiyor. POST yöntemimizin 'str' adlı bir parametreyi kabul ettiğini unutmayın. Yani burada Tutorial isimleri koleksiyonumuza “Ağaçlar” adında bir değer eklemek istediğimizi ve bunun str değişken adına etiketlendiğinden emin olmak istediğimizi belirtiyoruz.

Son olarak, fiddler'daki Execute düğmesine tıklamanız yeterlidir. Bu, web servisine veri "Ağaçlarını" web servisimize POST etme isteği gönderecektir.

Huzurlu Web Hizmetinin Test Edilmesi

Artık Öğretici listemizdeki tüm dizeleri göstermek için Öğretici URL'sine göz attığımızda, artık “Ağaçlar” değerinin de mevcut olduğunu göreceksiniz. Bu, web servisine yapılan POST isteğinin başarıyla yürütüldüğünü ve Eğitim Listemize başarıyla eklendiğini gösterir.

Huzurlu Web Hizmetinin Test Edilmesi

  1. Şimdi aşağıdaki senaryoyu çalıştırarak web servisimizi tüketelim. Bunun için de fiddler aracını kullanmamız gerekiyor

Öğretici/Eğitim Kimliğini SİL - Bir müşteri bu Restful API'yi çağırdığında, müşteri, Öğretici kimliğini temel alarak bir Öğretici adının silinmesi için bir istek gönderecektir. Web hizmeti daha sonra gönderilen Eğitim adını koleksiyondan silecektir.

Filddler aracını çalıştırın ve aşağıdaki adımları uygulayın

  1. Besteci bölümüne gidin. Bu, herhangi bir web uygulamasına gönderilebilecek istekler oluşturmak için kullanılır.
  2. İstek türünün "DELETE" olduğundan ve doğru URL'nin vurulduğundan emin olun; bizim durumumuzda bu URL olmalıdır. http://localhost:52645/TutorialService.svc/Tutorial. URL aracılığıyla gönderilen listedeki bir dizeyi silmek için kullanılan kimliğin parametre olarak olduğundan emin olun. REST örneğimizde 1 gönderiyoruz, bu 2'yi silecektir.nd Koleksiyonumuzdaki “Kuyruklar” öğesi.

Son olarak, fiddler'daki Execute düğmesine tıklamanız yeterlidir. Bu, web servisimize veri "Kuyruklarını" SİLME isteği gönderecektir.

Huzurlu Web Hizmetinin Test Edilmesi

Artık Öğretici listemizdeki tüm dizeleri göstermek için Öğretici URL'sine göz attığımızda, "Kuyruklar" değerinin artık mevcut olmadığını fark edeceksiniz.

Bu, web servisine yapılan DELETE isteğinin başarıyla yürütüldüğünü gösterir. Eğitim dizeleri listemizdeki 1 numaralı indeksteki öğe başarıyla silindi.

Huzurlu Web Hizmetinin Test Edilmesi

ÖZET

  • REST, Temsili Durum Transferi anlamına gelir. REST, doğası gereği hafif, bakımı yapılabilir ve ölçeklenebilir web hizmetleri oluşturmak için kullanılır.
  • Giderek daha fazla uygulama Restful mimarisine taşınıyor. Bunun nedeni, artık çok sayıda insanın mobil cihazları kullanması ve daha geniş çeşitlilikte uygulamaların buluta taşınmasıdır.
  • REST'in ana yönleri, sunucuda bulunan kaynaklar ve bu kaynaklarla çalışmak için kullanılabilen GET, POST, PUT ve DELETE fiilleridir.
  • Restful web servisleri oluşturmak için Visual Studio ve .Net kullanılabilir.
  • Ne zaman Test yapmak POST ve PUT için web servisleri kullanmak istiyorsanız, sunucuya POST ve PUT isteklerini göndermek için kullanılabilen fiddler adlı başka bir aracı kullanmanız gerekir.