Bu nedenle, RESTful hizmetinin kelime hazinesinde sabit bir fiil kümesi vardır. RESTful bir web hizmeti bunları HTTP yöntemlerinden alır. Sabit bir kelime dağarcığını tanımlamanın bazı avantajları vardır, ama bu noktayı gerçekten anlamıyorum. Belki birisi bunu açıklayabilir.
REST tarafından ana hatlarıyla belirtildiği gibi sabit bir kelime haznesi neden her durum için dinamik bir kelime haznesi tanımlamaktan daha iyidir? Örneğin, nesne yönelimli programlama popüler bir paradigmadır. RPC'nin sabit arayüzleri tanımladığı açıklanmaktadır, ancak insanların neden RPC'nin bu çelişkilerle sınırlı olduğunu varsaydığını bilmiyorum. RESTful hizmetinin içerik yapısını dinamik olarak tanımlaması gibi arayüzü dinamik olarak belirleyebiliriz.
REST'in kelime dağarcığını genişletmeden büyüyebilmesi açısından avantajlı olduğu düşünülmektedir. RESTful hizmetleri daha fazla kaynak ekleyerek dinamik olarak büyür. Nesne başına kelime dağarcığını dinamik olarak belirterek bir hizmeti genişletme konusunda bu kadar yanlış olan ne? Neden sadece nesnelerimizde tanımlanan yöntemleri kelime olarak kullanmıyoruz ve hizmetlerimizin müşteriye bu yöntemlerin ne olduğunu ve yan etkileri olup olmadığını açıklamalarını istemiyoruz?
Esasen, bir sunucu tarafı kaynak yapısının açıklamasının bir kelime dağarcığının tanımına eşdeğer olduğu hissini alıyorum, ancak daha sonra bu kaynaklarla etkileşime girmek için sınırlı kelime dağarcığını kullanmak zorunda kalıyoruz.
Sabit bir kelime hazinesi gerçekten müşterinin endişelerini sunucunun endişelerinden ayırıyor mu? Kesinlikle sunucunun bazı yapılandırma ile ilgili olmak zorunda, bu normalde RESTful hizmetlerinde kaynak konumdur. Dinamik bir kelime dağarcığının kullanılmasından şikayet etmek haksızlık gibi görünüyor çünkü bu yapılandırmayı nasıl bir şekilde anlayacağımızı dinamik olarak aklımızda tutmalıyız. RESTful hizmeti, nesne yapısını hiper ortam aracılığıyla tanımlayarak yapabileceğiniz geçişleri açıklar.
Sabit bir kelime dağarcığını, RPC benzeri bir hizmette kolayca çalışabilecek, kendini tanımlayan herhangi bir dinamik kelime bilgisinden daha iyi yapan şeyin ne olduğunu anlamıyorum. Bu, HTTP protokolünün sınırlı kelime dağarcığı için kötü bir neden midir?
yansıma
Düşüncelerimi yaptığımdan biraz daha iyi açıklığa kavuşturmak için. Herhangi bir genel amaçlı API tasarladığınızı, hatta web'e bakmadığınızı varsayalım. Birisi bu yöntem adlarını yalnızca nesnelerinizde kullanabileceğinizi söylerse mutlu olur musunuz? REST HTTP ile sınırlı değildir, ancak yazdığınız, web'e baktığınız veya başka bir şekilde GET POST PUT ve DELETE yöntemlerini içeren nesnelerden oluştuğu durumu göz önünde bulundurun. Yani tanımlamak istediğiniz object.foo yöntemi mümkün değil. Foo adlı yeni bir nesne tanımlamanız ve onun GET yöntemini çağırmanız gerekir. Aslında REST böyle çalışır ve bu konuda düşünmem biraz rahatsız olur. Foo'nun ne yaptığına dair daha iyi bir genel anlayışınız yok, sadece bir ana nesne üzerinde bir yöntem olan şey için yeni bir nesne oluşturmak zorunda kaldınız. Ayrıca API'nız daha az karmaşık değildir, daha fazla nesne oluşturarak sadece gizli arayüz karmaşıklığına sahipsiniz. RESTful web hizmetleri bizi, ortaya koyduğumuz API bağlamında yeterli olabilecek veya olmayabilecek bir arayüz benimsemeye zorluyor. Belki bunu web'e yönelik API'lerle yapmak için iyi bir neden vardır, ancak her genel amaçlı API'daki her nesne için standart arayüzleri benimsememek için iyi bir neden vardır. Pratik bir örnek takdir edilecektir.