Milano'nun URI'de istenen gösterimi gömme önerisine kısmen katılmıyorum. tünel HTTP yöntemleri/fiiller için
nasıl olsa Mümkünse, URI'ler sadece adresleme kaynaklar için kullanılmalıdır edilmeli ve değil. Sonunda, belirli iş eylem (düzenleme, kilit, vs.) oluşturursanız URI gömülü olabilir (POST) veya güncelleme (PUT) yalnız bir amaca hizmet etmeyen: Belirli bir istekte durumunda
POST http://shonzilla.com/orders/08/165;edit
URI'deki temsiliyetinizi URI tasarımınızı bozmanız, sonuçta çirkin hale getirerek iki ayrı REST kavramını aynı yerde (yani URI) karıştırmanız ve sunucu tarafında istekleri genel olarak işlemeyi zorlaştırmanız gerekir. Milan ne önerdiğini ve çoğunun aynı şeyi yapıyor, dahil. Flickr, tam olarak bu.
Bunun yerine, daha dinlendirici bir yaklaşım istemci işleyebilir içerik türleri sunucu/süreci ve sunucu denemeden anlatır içerik müzakere için kullanılan Accept
HTTP başlığı kullanarak tercih edilen temsil kodlamak için ayrı bir yere kullanılarak olur müşterinin isteğini yerine getirmek. Bu yaklaşım, yazılım uyumlu ve web tarayıcıları tarafından desteklenen HTTP 1.1 standard'un bir parçasıdır.Eğer XMLHttpRequest
nesnenin setRequestHeader
yöntemi kullanarak herhangi bir içerik türü talep edebilir bir web tarayıcısından
GET /orders/08/165 HTTP/1.1
Accept: application/xml
: Buna
GET /orders/08/165.xml HTTP/1.1
or
GET /orders/08/165&format=xml HTTP/1.1
:
karşılaştırın. Örneğin:
function getOrder(year, yearlyOrderId, contentType) {
var client = new XMLHttpRequest();
client.open("GET", "/order/" + year + "/" + yearlyOrderId);
client.setRequestHeader("Accept", contentType);
client.send(orderDetails);
}
Özetle: adresi, bir kaynağın diğer bir deyişle tanım temsilinin bağımsız olmalıdır ve XMLHttpRequest.setRequestHeader
yöntemi Accept
HTTP başlığı kullanarak herhangi bir temsilini talep sağlar.
Şerefe!
Shonzilla
Seni duyuyorum. Bazı üstbilgileri kodlamak harika olurdu ve tarayıcınızın sekmesinde kodunuzu test etmek için sadece URL'leri ziyaret edin. Chrome Postman uygulaması gibi tam gelişmiş bir arayüz istemiyorum. –
Bu uzantı benim için gayet güzel çalışıyor: https://chrome.google.com/webstore/detail/modify-headers-for-google/innpjfdalfhpcoinfnehdnbkglpmogdi?hl=tr-US –