REST nedir (basit İngilizce) [kapalı]


84

Son zamanlarda kendimi REST ile tanımakla ilgilenmeye başladım. REST'teki wiki girişini okumayı denedim ama yardımı olmadı. Birisi basit İngilizce olarak açıklayabilirse (ki bu gereksiz teknoloji jargonu olmadan ) gerçekten minnettar olurum.

  1. REST nedir
  2. Web mimarisi ekosisteminde hangi pozisyonları kaplar
  3. Protokol ile ne kadar sıkı (veya gevşek) bağlanır.
  4. REST'in alternatifleri nelerdir ve REST onlarla nasıl karşılaştırılır?

Bunu bir veya iki paragrafta cevaplamanın mümkün olamayacağını biliyorum, bu durumda ilgili bağlantılar çok takdir edilecektir.



Bunu bilgilendirici, henüz çok ayrıntılı
bulmuyorum

Acaba bu soruların cevaplanmış sayılabiliyor mu?
Gary Rowe,

@GaryRowe Bir yanıtı işaretledim, bir nedenden dolayı çıkarıldığını tahmin ediyorum. Bu siteyi anlamıyorum.
Gaurav

1
Aşağıdaki cevapların hiçbiri "idempotent" kelimesini kullanmaz. Buna dikkat etmelisin: idempotluk herhangi bir RESTful mimarisinin önemli bir yönüdür.
Süleyman Yavaş

Yanıtlar:


10

REST Nedir (Basit İngilizce)

Basit ingilizce:

Temsilcilik: Birisi adına konuşma veya hareket etme eylemi.
Devlet Transferi: transfer durumu.


Teknik:

  • gerçek bir nesneyi transfer etmiyoruz, bunun bir formda gösterimini yapıyoruz (örneğin, bir veritabanı tablosunu temsil etmek için bir xml / json / metin).
  • Verilerdeki CRUD işlemlerini yürütmek için İnternet üzerinden genel bir API göstermek için REST'ler. REST, adlandırılmış kaynaklara tek bir tutarlı arayüz üzerinden erişmeye odaklanmıştır.
  • REST, bazı medya türleriyle temsil edilir. Bazı medya türleri örnekleri XML, JSON ve RDF'dir.
  • REST, bir teknik özellik veya standart değil, kaynak odaklı mimari (ROA) için bir mimari tarzdır .
  • Mimari tarz bir kavram, teori (ve nasıl uygulandığı, size kalmış) olduğu anlamına gelir
  • Her şey benzersiz bir son nokta ile tanımlanır. yani Her kaynak için bir son nokta var (veri).
  • Bitiş noktası, kaynak adresli etki alanı adından oluşur.

REST vs SOAP


43

REST nedir?

Temsili Devlet Transferi. Bir sistemin bir diğeri ile nasıl iletişim kurabildiğini açıklar. Bir örnek, XML, JSON veya düz metin olarak gösterilen bir ürünün durumu (adı, açıklaması vb.) Olabilir. Genelleştirilmiş devlet fikrine kaynak denir.

Bir web mimarisi ekosisteminde hangi pozisyonu kaplar?

REST genellikle web servisleri arayüzü ile ilişkilendirilir çünkü HTTP en yaygın taşıyıcı protokolüdür. 7 katmanlı modelde uygulama katında bulunur . Bununla birlikte, bir sonraki bölüme bakınız.

Protokol ile ne kadar sıkı (veya gevşek) bağlanır?

REST HTTP değil. HTTP kullanır çünkü en genel haliyle REST, bir makinenin fiil kavramını, adların keyfi bir şekilde toplanmasına karşı eşlemesinde yardımcı olmak için vardır. HTTP, HTTP kullanarak URI olarak ifade edilen isteğe bağlı isimlere, örneğin, örneğin GET http://example.org/Product(54 ) uygulanabilen kullanışlı bir genel fiil seti (GET, PUT, PATCH vb.) İçerir .

REST'in alternatifleri nelerdir ve REST bunlarla nasıl karşılaştırılır?

Bu, “Benim yaklaşımım ne kadar Dürüst?” Diye sormaya benzer. (Dan özetlenen aşağıdaki listeyi kullanın Martin Fowler tarafından açıklandığı gibi Richardson Olgunluk Modeli ):

Seviye 0 - POX bataklığı

Her şey için POST kullanın (okur, yazar, siler). Bu SOAP, POX, RPI vb. Sadece kendi protokolünüz için bir tünel olarak HTTP kullanıyorsunuz. İstek gövdesinin içeriğine bağlı olarak her şeyi yapan tek bir bitiş noktasını hedeflersiniz.

Seviye 1 - Kaynaklar

Her şey için POST kullanın. Belirli bir şey hakkında bilgi sunmak için tasarlanmış çoklu uç noktaları hedefleyin. Az önce kaynakları keşfettin.

Seviye 2 - HTTP fiilleri

Kaynaklara karşı HTTP fiilleri kullanın. Şimdi alıyorsun. POST oluşturmak, PUT üzerine yazmak, kullanılabilir işlemler için SEÇENEKLER, kaynak SİL, de silin. Bu fiillerin kullanımı sonucunda farklı HTTP durum kodları daha alakalı hale gelmeye başlar (202 KABUL EDİLDİ Mİ?).

Seviye 3 - Hypermedia kontrolü ( HATEOAS )

Bu noktada son sıçramayı yapıyor ve hypermedia'yı bir akış kontrol mekanizması olarak tanıtıyorsunuz. Bir REST istemcisinin, genel bir hiper medya anlayışı dışında, belirli bir uygulama veya sunucu ile nasıl etkileşime gireceği hakkında önceden bir bilgiye ihtiyacı yoktur. Bu, HTTP'de Content-Type başlık alanı aracılığıyla iletilebilir. Metin biçimleri AtomPub ve (daha özlü) HAL'ı içerirken, HyperAudio ses akışları için iyi çalışır (bkz. SoundCloud ve diğerleri).


"REST HTTP değil" diyorsunuz, ancak Roy Fielding, hipermetin bir gereklilik olduğu fikrinde oldukça sabit görünüyor , tüm HATEOAS anlaşmasıyla, hangisine göre - ona göre - "uygun" REST yapmıyorsunuz. Hipermetin! = HTTP iken, HTTP dışında gerçekte ne kadarını yapabileceğinizi merak ediyorum ...
Andres F.

Buna göre ( roy.gbiv.com/untangled/2008/… ) Roy Fielding, hipermetin veya altkümesi hypermedia'nın bir tür bağlantıyı desteklediği sürece HTML'nin dışında ifade edilebileceği anlamına gelir.
Gary Rowe

3
HTTP, REST ile iyi çalışır çünkü durumsuz bir protokolde REST'te isimleri temsil eden URI'lerle çalışmak için standartlaştırılmış fiiller sunar. İdeal. Ancak, tezinde ( ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm ) " REST'in belirli bir protokolle iletişimi sınırlamadığını, ancak bileşenler arasındaki arayüzü sınırlamadığını, dolayısıyla kapsamının kapsamını sınırladığını not eder. Bileşenler arasında aksi takdirde yapılabilecek etkileşim ve uygulama varsayımları. " Bu nedenle, tam bir FTP uygulamasının, müşteri tarafı devlet yönetimi olmadan RESTful olması muhtemel değildir.
Gary Rowe

2
Martin Fowler bağlantısı için +1. Her zamanki gibi, Martin Fowler bir kavramı mümkün olan en net ve özlü şekilde tanımlayan bir makale yazdı
Tom Carter

Eğer örtülü state transfertemsili değil. Birisinin adına konuşma ya da hareket etme eylemi, bu bağlamda nasıl çalıştığını gösterir mi?
Premraj

11

REST, Temsilsel Devlet Transferinin bir kısaltması olmasına rağmen, biraz sezgisel bir arayüzle çeşitli eylemler gerçekleştirme fikrini düşünmek daha kolay olabilir.

Örneğin, http://www.mysite.com/FindProduct/125/ gibi bir URL , ürün hakkında 125 kimliğe sahip bilgi edinmek isteyen biri olarak yorumlanabilir.

REST, genellikle HTTP açısından düşünülürken, konsept Wikipedia referansında belirtildiği gibi diğer protokollere de uygulanabilir.

Yararlı olabilecek diğer REST örnekleri:


2
"REST Öğren: Bir Öğretici" bağlantısı için teşekkür ederiz! Bu, beni somut bir şey öğrendim hissi uyandıran okuduğum ilk ders. Okuduğum her şey (Wikipedia makalesi dahil), REST'i sadece teknik jargonla çevrili en soyut yollarla açıklıyor.
Avian00

ilk bağlantı çalışmıyor. Cevabınız yine de yardımcı olur!
Meraklısı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.