한국   대만   중국   일본 
REST - Vikipedi ?ceri?e atla

REST

Vikipedi, ozgur ansiklopedi

REST (Temsili Durum Aktarımı; ?ng. ?ngilizce Representational state transfer ), Web protokolleri ve teknolojilerini kullanan bir da?ıtık sistemdir . REST prensiplerini sa?layan sistemler, RESTful olarak sıfatlandırılır. [1] Temsili Durum Aktarımı ismindeki temsili ( ?ng. ?ngilizce representational ), verinin temsilini kastetmekte olup onunla ilgili durumun aktarılması olarak du?unulebilir.

2000 yılında HTTP spesifikasyonunun yazarlarından biri olan Roy Fielding tarafından doktora tezinin bir parcası olarak geli?tirilmi?tir. [2]

SOAP ve WSDL tabanlı Web servislerine spesifikasyon olarak daha basit bir alternatif olarak geli?tirilmi?tir. RESTful sistemler co?unlukla HTTP protokolu uzerinden Web tarayıcıları tarafından sayfaların transferinde de kullanılan HTTP fiilleri ( GET , POST , PUT , DELETE vs.) ile haberle?irler.

Aktarılan verinin formatı HTML , JSON , XML ya da farklı bir tipte olabilir. REST, bu konuda bir kısıtlama getirmez. Aktarılan verinin tipi ve ozellikleri istemci ve sunucu tarafından HTTP protokolunde yer alan ?ngilizce content-type (icerik tipi) ve benzeri metaveri ile tanımlanır.

Tarihcesi [ de?i?tir | kayna?ı de?i?tir ]

REST, ilk defa Roy Thomas Fielding 'in 2000 yılındaki "Mimari tarzları ve a? tabanlı yazılım mimarisi tasarımları" ( ?ng. " ?ngilizce Architectural Styles and the Design of Network-based Software Architectures " ) adlı doktora tezinde teklif edildi. [3] Fielding, REST mimari tarzını 1996-1999 arasında HTTP 1.0'ın mevcut tasarımına dayanarak HTTP 1.1 ile paralel olarak 1996'da geli?tirdi. [4]

Mimari ozellikleri [ de?i?tir | kayna?ı de?i?tir ]

REST mimari tarzıyla etkilenen mimari ozellikler ?unlardır: [3] [5]

  • Performans - bile?en etkile?imleri, kullanıcının tespit etti?i performans ve a? verimlili?inde dominant faktor olabilir. [6]
  • Cok sayıda bile?eni ve bile?enlerarası etkile?imi olceklenebilirlik yapmak.
  • Arayuzlerin sadeli?i
  • De?i?en ihtiyacları kar?ılamak icin (uygulama yurutulurken dahi) bile?enlerin de?i?tirilebilirli?i
  • Hizmet vekillerince ( ?ng. ?ngilizce service agents ) tarafından bile?enlerarası haberle?menin gorunurlu?u
  • Program kodunu veriyle beraber hareket ettirerek bile?enlerin ta?ınabilirli?i
  • Sistem seviyesinde bile?enlerde, ba?lantılarda veya verideki hatalara ra?men hataya kar?ı direnc guvenilirli?i [6]

Mimari sınırlamaları [ de?i?tir | kayna?ı de?i?tir ]

REST'in mimari ozellikleri, ba?lantılara, bile?enlere ve veri elementlerine belli etkile?im sınırlamaları uygulayarak eri?ilir. [3] [5] Bu bolumdeki ozelliklere sahip uygulamalar, "RESTful" olarak tasvir edilir. [7] E?er hizmetler gerekli sınırlamaların herhangi birini ihlal ederse artık RESTful olarak gorulemezler. Bu sınırlamalarla uyumlu olma ve boylece REST mimari stiliyle uyu?ma, her ce?it hipermedya sisteminin performans, olceklenebilirlir, sadelik, de?i?tirilebilirlik, gorunurluk, ta?ınabilirlik ve guvenilirlik gibi cazip fonksiyonel olmayan ozelliklere sahip olmasını sa?lar. [3]

Formel REST sınırlamaları ?unlardır:

?stemci?sunucu [ de?i?tir | kayna?ı de?i?tir ]

?stemcileri sunuculardan ayıran yeknesak bir arayuz. Bu, kavramların ayrılması ( ?ng. ?ngilizce separation of concerns ), yani mesela istemcilerin sunucu dahilinde yapılmakta olan veri saklama ile ilgilenmedikleridir. Bunun sonucunda istemci yazılımının ta?ınabilirli?i iyile?ir. Sunucular da istemcilerde bulunan kullanıcı durumuyla ilgilenmezler. Boylece sunucular daha sade ve daha olceklenebilir olurlar. Sunucular ve istemciler de aralarındaki arayuz de?i?tirilmemesi ?artıyla aynı fonksiyona sahip ba?kalarıyla de?i?tirilebilir ve farklı gruplarca birbirinden ba?ımsız olarak geli?tirilebilirler.

Durumsuzluk [ de?i?tir | kayna?ı de?i?tir ]

?stemci?sunucu haberle?mesi, iki talep arasında hicbir istemci ortamının ( ?ng. ?ngilizce client context ) sunucuda saklanmamasıyla daha fazla sınırlanmaktadır. Her istemciden gelen talep, hizmeti vermek icin lazım olan butun bilgileri icerir ve oturum durumu istemcide saklı kalır. Oturum durumu, sunucu tarafından veri tabanı gibi ba?ka bir hizmete bir sure icin transfer edilebilip denetlenebilir. ?stemci, yeni bir duruma gecmek uzereyken istekler yollar. Bir veya birkac istek yerine getirilmemi?ken istemci geci? durumundadır ( ?ng. ?ngilizce to be in transition ). Her uygulama durumunun sunumu, bu istemci yeni bir durum geci?i ba?lataca?ı zaman tekrar kullanılabilecek ba?lantılar ihtiva eder. [8]

On belleklenebilme [ de?i?tir | kayna?ı de?i?tir ]

World Wide Web'de istemciler ve aracılar, cevapları on belle?e alabilirler. Bu yuzden cevaplar, do?rudan veya dolaylı olarak kendilerini on belleklenebilir ( ?ng. ?ngilizce cacheable ) veya on belleklenemez olarak tanımlamalıdırlar. Boylece ba?ka isteklere cevaben istemcilerin bayat veya uygunsuz veri kullanımı onlenir. ?yi yonetilmi? on bellekleme ( ?ng. ?ngilizce caching ) ile bazı istemci?sunucu etkile?imlerini kısmen veya tamamen bertaraf edilir, boylece olceklenebilirlik ve performans daha da iyile?ir.

Tabakalı sistem [ de?i?tir | kayna?ı de?i?tir ]

?stemci, genelde sondaki sunucuya veya yol boyunca bir aracıya ba?lı olup olmadı?ını soyleyemez. Aracı sunucular, yuk dengelemesi ( ?ng. ?ngilizce load balancing ) ve bolu?ulmu? on bellekler ( ?ng. ?ngilizce shared caches ) sa?layarak sistem olceklenebilirli?i geli?tirir. Bunun yanında guvenlik ilkelerini de guclendirirler.

Talep uzerine kod (iste?e ba?lı) [ de?i?tir | kayna?ı de?i?tir ]

Sunucular, gecici olarak istemcinin fonksiyonelli?ini icra edilebilir kod yollayarak geni?letebilir ya da ozelle?tirebilir ( ?ng. ?ngilizce extend or customize code ). Java appletler ve JavaScript gibi istemci tarafı betikler bunlardan sayılır. "Talep uzerine kod", REST mimarisinde iste?e ba?lı olan tek sınırlamadır.

Yeknesak arayuz [ de?i?tir | kayna?ı de?i?tir ]

Yeknesak arayuzu sınırlaması, her REST hizmeti icin bir temel te?kil eder. [3] eknesak arayuz, mimariyle sadele?tirip ayırır, boylece her taraf birbirinden ba?ımsız olarak geli?ebilir. Yeknesak arayuzunun dort sınırlaması ?unlardır:

Kaynakların belirlenmesi ( ?ng. ?ngilizce identification of resources )
Ba?lıba?ına kaynaklar, isteklerle belirlenir. Bu, mesela Web tabanlı sistemlerde yeknesak kaynak kimli?i ( ?ng. ?ngilizce uniform resource identifier, URI ) kullanılarak yapılır. Kaynaklar, kavramsal olarak istemcilere dondurulen sunumlarından ( ?ng. ?ngilizce representation ) farklıdırlar. Mesela sunucu, hicbirisi dahili sunumu olmamasına ra?men veri tabanından gelen veriyi HTML , JSON veya XML olarak gonderebilir.
Bu temsiller yoluyla kaynakların manipulasyonu
Bir istemci temsili kayna?ı ona ba?lı herhangi bir metaveriyle birlikte bulunduruyorsa bu kayna?ı de?i?tirmek veya silmek icin yeteri kadar bilgisi vardır.
Kendinden acıklayıcı mesajlar
Her mesajda kendisinin nasıl i?lenece?ine dair yeterli bilgi mevcuttur. Mesela hangi ayrı?tırıcının ( ?ng. ?ngilizce parser ) calı?tırılaca?ı bir ?nternet medya tipi ( ?ng. ?ngilizce Internet media type , eskiden MIME tipi ( ?ngilizce MIME type ) olarak bilinirdi) ile belirlenmi? olabilir. [3] Uygulama durumu motoru olarak hipermedya ( ?ng. ?ngilizce hypermedia as the engine of application state (HATEOAS) )
?stemciler durum de?i?imini ancak sunucu tarafından hipermedya ile belirlenmi? dinamik eylemlerle yapabilirler (mesela hiper metinlerin icinde bulunan hiper ba?larla ). Basit ba?lama noktalarının haricinde bir istemci, onceki temsillerle haber aldı?ının dı?ında herhangi bir kaynak icin herhangi bir eylemin mevcudiyetini kabul edemez.

Kaynakca [ de?i?tir | kayna?ı de?i?tir ]

  1. ^ "Techopedia'da REST tanımı" . 19 Kasım 2015 tarihinde kayna?ından ar?ivlendi . Eri?im tarihi: 19 Mart 2015 .  
  2. ^ Roy Fielding (2000). "Architectural Styles and the Design of Network-based Software Architectures" . UCU Donald Bren ? School of Information & Computer Science. 19 Mart 2015 tarihinde kayna?ından ar?ivlendi . Eri?im tarihi: 19 Mart 2015 .  
  3. ^ a b c d e f Fielding, Roy Thomas (2000). "Chapter 5: Representational State Transfer (REST)" . Architectural Styles and the Design of Network-based Software Architectures (Ph.D.). University of California, Irvine. This chapter introduced the Representational State Transfer (REST) architectural style for distributed hypermedia systems. REST provides a set of architectural constraints that, when applied as a whole, emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems.  
  4. ^ "Fielding discusses the development of the REST style" . Tech.groups.yahoo.com. 1 Eylul 2015 tarihinde kayna?ından ar?ivlendi . Eri?im tarihi: 14 Eylul 2014 .  
  5. ^ a b Thomas Erl, Benjamin Carlyle, Cesare Pautasso, Raj Balasubramanian (2013). "5.1". Thomas Erl (Ed.). SOA with REST . Prentice Hall. ISBN   978-0-13-701251-0 .  
  6. ^ a b Fielding, Roy Thomas (2000). "Chapter 2: Network-based Application Architectures" . Architectural Styles and the Design of Network-based Software Architectures (Ph.D.). University of California, Irvine.  
  7. ^ Richardson, Leonard; Ruby, Sam (2007), RESTful Web service , O'Reilly Media, ISBN   978-0-596-52926-0 , 19 ?ubat 2012 tarihinde kayna?ından ar?ivlendi , eri?im tarihi: 18 Ocak 2011 , The main topic of this book is the web service architectures which can be considered RESTful: those which get a good score when judged on the criteria set forth in Roy Fielding's dissertation.  
  8. ^ "Fielding talks about application states" . Tech.groups.yahoo.com. 21 Mayıs 2012 tarihinde kayna?ından ar?ivlendi . Eri?im tarihi: 7 ?ubat 2013 .