AFAIK Fielding, REST'in iyi olduğunu iddia etmedi, sadece webin fiili mimarisini tanımladı.
Bu biraz anlıyor, sanırım. DİNLENME sonuçta ise, bir numaralandırma mimari tarzında olduğu Fielding kullanıyordum baş mimarı olarak HTTP / 1.1 spec .
Ancak REST'in bu alan için istenen bir mimari olduğunu düşünmek için gerçekten bir sebep var mı? HATEOAS'ın makineden makineye iletişim için faydalı bir tasarım ilkesi olduğunu gösteren herhangi bir kanıt var mı?
"Değişir". HATEOAS, REST'in tek tip arabirim kısıtlamasının bir parçasıdır .
Bileşen arabirimine yazılım mühendisliği genelliği ilkesi uygulanarak, genel sistem mimarisi basitleştirilir ve etkileşimlerin görünürlüğü artırılır. Uygulamalar sağladıkları hizmetlerden ayrılır ve bu da bağımsız evrimleşmeyi teşvik eder. Ancak değiş tokuş, tekdüze bir arabirimin verimliliği düşürmesidir, çünkü bilgi bir uygulamanın ihtiyaçlarına özgü olandan ziyade standart bir biçimde aktarılır. REST arabirimi, Web'in genel durumu için optimize edilen, ancak diğer mimari etkileşim biçimleri için en uygun olmayan bir arabirim ile sonuçlanan, büyük taneli hiper ortam veri aktarımı için verimli olacak şekilde tasarlanmıştır.
Şimdi bunun ne anlama geldiğini düşünelim. Kablosuz yönlendiricimle sorun yaşadığımda, stackexchange'e yanıt göndermek için kullandığım tarayıcıyı kullanarak iletişim kurabilirim. Özellikle, hangi tarayıcıyı kullandığım ya da tarayıcımın yönlendiricinin beklediğinden birkaç güncelleme (ya da önde) olup olmadığı önemli değil. Tarayıcıyı yazan mühendislik organizasyonunun, yönlendirici arayüzünü oluşturan organizasyondan tamamen bağımsız olması önemli değildir.
Bu işe yarıyor .
Elbette evrensel değil. Fielding, 2008 yılında şunları yazdı:
Bu, herkesin REST mimari stiline göre kendi sistemlerini tasarlaması gerektiği anlamına gelmez. REST, birden çok kuruluşa yayılan uzun ömürlü ağ tabanlı uygulamalar için tasarlanmıştır. Kısıtlamalara ihtiyaç duymazsanız, bunları kullanmayın.
REST mimari stilini oluşturan kısıtlamalar, indükledikleri özellikler için seçildi; bu özellikler kullanım durumunuz için değerli değilse, kesinlikle ilgili kısıtlamaları bırakmayı düşünmelisiniz.
Makineden makineye zorlaştığı yerde, insanın temsiller tarafından sağlanan semantiğe bulanıklık gösterme yeteneğini kaybetmiş olmanızdır. Müşteriler sadece medya türlerini bilerek alabilirler, ama normalde anlam elde etmek için semantik ipuçlarına bakan bir insana sahibiz.
schema.org , makine tarafından okunabilir bir kelime dağarcığı oluşturma çabasının bir parçasıdır; makine temsilcileri semantik ipuçlarını bulmak için istemciyi kullanır ve yapılacak doğru eylemleri seçmek için anlamın kendi anlayışını uygular.
Ama bu iş; kaynaklarınızın makine dostu sunumlarını geliştirmeye ve bu sunumların ileri ve geri uyumlu kalmasını sağlamaya yatırım yapmanız gerekir, böylece müşteriler bağımsız olarak geliştirilebilir.
Tek bir kuruluş hem istemciyi hem de sunucuyu denetlediğinde, bu bağımsızlığın faydaları çok daha küçüktür, bu durumda kısıtlama uygun bir mimari seçim olmayabilir.