2011-07-21 13 views
5

örneğin, JSON (veya XML) DİNLENME kaynaklarının temsilinde URI'ları kullanmanın en iyi yöntem için miREST kaynaklarının JSON temsili ilgili kaynaklar için URI'leri kullanıyor mu?

her eki için kullanılabilir kimliğine sahipse eklerin bir listesi vardır bir kaynak için Örneğin

http://myserver.com/resources/attachments/ gibi bir URL kullanarak geri almak: oldukça yararsız olacaktır Eğer hala s bilgi göndermek gerekir çünkü

{ 
    fileName: "screenshot.png" 
    contentType: "application/octet-stream" 
    id: 52004 
} 

Ben de

{ 
    fileName: "screenshot.png" 
    contentType: "application/octet-stream" 
    id: 52004 
    uri: /resources/attachments/52004 
} 

cevap

8

Evet, koleksiyondaki her öğeye bir bağlantı eklemelisiniz. Bir API, bağlantılar olmadan RESTful (ve daha önemlisi, yararlı değil) değildir. Bir insan istemcinin bir öğeyi kimliğine göre nasıl talep edeceğine ilişkin talimatlardan daha çok bir bağlantıya sahip olacağını düşünüyorsanız, aynısı insan olmayan bir istemci için de geçerlidir. DİNLENME üzerinde wikipedia girişi itibaren

link : { uri: "/resources/attachments/52004", rel: "/rels/file-attachment" } 

John

+1

Ve eğer bunu yaparsanız, o zaman "id" üye tamamen gereksizdir. – fumanchu

+0

@fumanchu İyi nokta –

+0

"id" parametresi tamamen yedeklenmiyor. Yanıtta bir kimliğe sahip olmak, son kullanıcının API refactorings, url sürümleri ve potansiyel olarak bu kaynağa referans veren diğer aramalar için filtreler olarak bu kaynağı tanımlamasını sağlar. – trcarden

0

gibi bir uri elemanı eklemeli miyim Kullanıcı kaynağı talep ettiyse ve kaynağı URI'den ziyade kimliğinden alırsınız.

Ayrıca, bazen bazı kaynaklar bir URI'ye ihtiyaç duymazlar; çünkü bunlar hiçbir zaman istenmeyecek veya doğrudan talep edilemeyecektir.

+0

:: Ayrıca bir bağlantı ilişkisini sağlayarak müşteriye madde akımı kaynağın nasıl bir ilişki bazı fikir vermelidir "Bir kaynak, esasen herhangi tutarlı olabilir ve ele alınabilecek anlamlı bir kavram. " Web'de, bir kaynağı tanımlamanın yolu bir veritabanı kimliği değil, bir URI aracılığıyla gerçekleşir. –

İlgili konular