Huzurlu bir sunucu ile, aynı url (diyelim / kitap / 1) bir çok farklı fiiller yanıt verebilir. Bu fiiller, POST, göstermek, yolu ile birlikte, PUT ve DELETE, GET what you want to do to the data on the server. Yanıtı size isteğinize cevap söyler.
DİNLENME öngörülebilir ve mantıklı bir şekilde verilere erişme hakkında olduğunu.
Her url Belirli bir dosyanın haritasına sahip güçlü bir PHP arka plan, gelirseniz, haklısın, gerçekten mantıklı değil. Iki en görünür sığınakta geliştirme ortamları, ASP.NET MVC ve Raylar, her fiiller okuyun ve sizin için özel bir yönlendirme yapmak, özel sunucuları (veya sunucu mantığı) var. Bu sizin beklediğiniz gibi uygulamanın "normal akış" üzerinden geçelim buydu. PHP, böyle WSO2's WSF ile bu gibi yardım çerçeveler vardır.
How REST works with Web Browsers
Örneğin, sizin örnek alın. Biz mesajlarını var ve biz tek silmek istiyoruz.
Biz ileti / 4 / gibi bir url ziyaret ederek başlayabilirsiniz. Beklediğimiz gibi, bu yazı 4, onun özelliklerini, ve bunu sürebilir bazı eylemleri gösterir. Bu url işlemek için istek GET /posts/4
gibi görünecektir. Yanıtı öğeyi açıklar HTML içerir.
Kullanıcı "Öğe 4 Sil" bağlantısını, HTML kısmını tıklar. Bu sunucuya DELETE /posts/4
gibi bir istek gönderir. Uyarı, bu /posts/4
url yeniden kullanılmış, ancak mantık farklı olmalıdır.
HTML formları ve web tarayıcıları, çoğu varsayılan yöntem = bir yönteme "delete" = "post" linki ile bir bağlantı değişecek. Sen fiil değiştirmek için Javascript (gibi bir şey this) kullanmanız gerekecektir. Ruby on bir alternatif olarak, (_method
) yöntemi, bir formuna kullanılmak üzere olan belirtmek için gizli bir giriş alanı kullanır.
Sunucu tarafında, mantık yürütüldüğünde "bir öğe silme". Çünkü isteği fiilinin bu yürütmek bilir (DELETE
), eylem yapılmaktadır hangi maçlar. Bu HTTP fiiller anlamlı hale, REST önemli bir nokta bulunuyor.
Öğeyi sildikten sonra, "hayır, üzgünüm, bunu yapamazsın" "yep, bitti" ya da benzeri bir sayfa ile cevap verebilir ama bir tarayıcı için başka bir yere koymak daha mantıklı. Öğe GET /posts
iyi mantıklı bir yönlendirme ile yanıt, silinen.
Eğer sunucu günlüğüne bakarsanız, bu sunucuya ne yaptığını herkes çok net olacak, ama o kadar önemli değil ...
How REST works with Arbitrary Data
REST Bir başka önemli nokta da birden çok veri formatları ile çalışır. Okumak ve programlı blog ile etkileşim istedim bir program yazdığımız varsayalım. Sen daha ziyade bilgi için HTML kazımak zorunda değil, XML verilen tüm mesajları isteyebilirsiniz.
GET /posts/4.xml
sezgisel: "Sunucu, post 4. anlatan bana xml verin." Tepki bu xml olacaktır. Bir sığınakta sunucu bariz nasıl istediğiniz bilgi almak için yapar.
Eğer DELETE /posts/4.xml
isteği yapıldığı zaman, sen "Sunucu, madde 4. silin lütfen.", Soruyorsun , Gibi bir tepki "Tamam, tabii," ne oldu ifade etmek genellikle yeterlidir. Program daha sonra istediği başka ne karar ve başka bir isteği yapabilirsiniz.