SORU
18 AĞUSTOS 2011, PERŞEMBE


DİNLENME/Kompozit/Kaynakları iç İçe geçmiş Karmaşık

Bir REST API temel kavramları çözmek için en iyi yolu kafamda bir yere oturtmaya çalışıyorum. Diğer kaynaklar içermeyen düz kaynakları sorun. Başına bela olduğum karmaşık kaynaklardır.

Örneğin çizgi roman için bir kaynak var. Çizgi roman yazar, sayı, tarih, vb gibi özellikleri her türlü var.

Çizgi roman da 1..n kapsayan bir liste var. Bu karmaşık nesneleri kapsar. Kapak, sanatçı, tarih ve kapağı bile base 64 kodlu bir resim hakkında bir sürü bilgi içeriyor.

Bir Çizgiroman ALMAK için sadece komik dönebilirim, ve tüm base64 çiğnenmiş kendi görüntüleri de dahil olmak üzere. Muhtemelen tek bir çizgi almak için büyük bir anlaşma değil. Ama diyelim ki, bir tablo gibi sistem içinde çizgi roman tüm listesi için istediği bir istemci uygulaması yapıyorum. Tablo çizgi roman kaynaktan bir kaç özellikleri içerir, ama kesinlikle tablodaki tüm kapaklar görüntülemek için istiyoruz. 1000 kapsar dönen, birden fazla olan her verileri ağ üzerinden gelen gülünç büyük miktarda neden olur kapsar, bu durumda son kullanıcı için gerekli değil veri.

İçgüdülerim kaynak ve bir çizgi roman içeren Kapak yapmak için. Şimdi de Kapağı bir URI. Çizgi roman çalışmaları şimdi, büyük Kapak kaynak yerine biz her kapak için bir URI göndermek geri ALMAK ve müşterileri onların istedikleri gibi Kapak kaynakları almak.

Şimdi yeni bir çizgi roman oluşturma ile ilgili bir sorunum var. Kesinlikle muhtemelen bir iş kuralı bir Çizgi oluşturduğumda en az bir kapak oluşturmak için, aslında istiyorum. Şimdi sıkıştım, ben de zorla müşteriler için zorla iş kuralları tarafından ilk teslimi Kapak, alma URI kapak, sonra Deftere bir çizgi roman ile URİ, liste veya YAZI üzerine çizgi roman alır bir farklı bakıyor Kaynak daha dışarı tükürür. Göndermek ve ALMAK için gelen kaynakları dışa bağımlı kaynaklara referanslar Alır derin kopyalarını.

Kapak kaynak adresi de istediğim bir istemci bazı durumlarda yön Kapakları gibi eminim çünkü muhtemelen her durumda gereklidir. Yani sorun genel bir form bağımlı kaynak boyutu ne olursa olsun var. Genel olarak ne kadar karmaşık Kaynakları idare istemci sadece "bu kaynakları nasıl oluşur?" diye zorlamadan

CEVAP
21 EYLÜL 2011, ÇARŞAMBA


@ray, mükemmel bir tartışma

@jgerman, DİNLENME bunu unutma, kaynakları anlamına gelmez SONRASI kesin olmak zorunda.

Bir kaynak herhangi bir temsili olarak eklemeyi tercih size kalmış.

Bu kapaklar, senin durumunda ayrı olarak başvurulan sadece kimin çocuğu kaynaklar ana kaynak (çizgi roman) oluşturulmasıdır (kapsar) çapraz başvuru. Örneğin, aynı zamanda yazarlar, yayıncılar , karakter, ya da kategoriler için başvurular ayrı ayrı sağlamak isteyebilirsiniz. Bu kaynakları ayrı ayrı oluşturmak istiyorsanız ya da onları çocuk gibi kaynakları olan çizgi roman önce. Alternatif olarak, ana kaynak oluşturma sırasında yeni bir alt kaynak yaratmak isteyebilirsiniz.

Bu özel durumda kapağı gerçekten bir çizgi roman gerektirir, ve tam tersi bu biraz daha karmaşıktır kapsar.

Eğer çocuk bir kaynak gibi bir kaynak ve adresi olarak bir e-posta iletisi dikkate ancak, belli ki hala başvuru adresinden ayrı ayrı yapabilirsiniz. Örneğin, adresleri. Ya da, adresinden bir önceki ile yeni bir mesaj oluşturmak. Eğer e-posta oldu DİNLENME, sen-ebil kolayca görmek birçok çapraz başvurulan kaynaklar olabilir kullanılabilir: /alınan mesajları /askerlik mesajları /-adresleri /-adresi /adresleri /konular /ekleri /klasörler /etiketler /kategoriler /etiketler, et al.

Bu öğretici çapraz başvurulan kaynakların büyük bir örnek sağlar. http://www.peej.co.uk/articles/restfully-delicious.html

Bu otomatik olarak oluşturulan veri için en yaygın biçimi. Örneğin, bu sunucu tarafından oluşturulan yeni kaynağın URI, KİMLİĞİ veya oluşturma tarihi bir yazı, değilsin. Ve henüz, yeni kaynak döndüğünde URİ, KİMLİĞİ veya oluşturma tarihi alabilirsiniz.

İkili veri sizin durumunuzda bir örnek. Örneğin, alt kaynak olarak ikili veri göndermek için. Ana kaynak alınca ikili veri temsil eden aynı ikili olarak bu alt veri kaynakları, ya da URI temsil eder.

Formları ve parametreler kaynakların HTML temsilini daha şimdiden farklı. Bir URL sonuçlanan ikili/dosya bir parametre göndermeden bir streç değil.

Ne zaman form için yeni bir kaynak (/çizgi roman kitapları/yeni), veya düzenlemek için bu formu bir kaynak (/çizgi roman kitapları/0/Düzenle), siz sorduğunuz için bir form özel gösterimi ile kaynağı. Eğer yazı için kaynak toplama ile içerik türü "uygulama/x-www-form-urlencoded" veya "çok parçalı/form-data", soran sunucuya kaydedin bu tür temsili. Sunucu kaydedilmiş olan, ya da her neyse HTML gösterimi ile yanıt verebilir.

Ayrıca, kaynak toplama, bir API amacıyla gönderilecek için HTML, XML veya JSON bir represention için izin veya benzeri isteyebilirsiniz.

Aynı zamanda size açıklamak gibi kaynakları temsil eder ve iş akışı dikkate kapsar çizgi roman sonra gönderildi alarak, ama çizgi roman bir kapak olması gerek. Örnek olarak aşağıdaki gibidir.

  • Sağlar gecikmeli oluşturma kapak
  • İzin gerekli kapak ile çizgi roman oluşturma
  • Sağlar çapraz başvurulan kapsar
  • Birden fazla sağlar kapsar
  • Taslak çizgi roman oluşturun
  • Taslak çizgi roman kapakları oluşturun
  • Çizgi roman taslağı yayınlayın

Comic-kitap /GET200 TAMAM, tüm çizgi roman.

/0/karikatür kitaplarıTAMAM, 200 çizgi roman (ıd: 0) ile kapaklar/1,//2 kapakları/().

/Komik-kitap indir/0/kapsarÇizgi roman için TAMAM, 200 kapsar (ıd: 0).

/Kapsar200 TAMAM, kapsar.

//1 kapsarTAMAM, 200 kapak (ıd: 1) çizgi roman (/çizgi roman-kitap 0/).

Comic-kitap /yeni/TAMAM, çizgi roman (form: /-çizgi roman-kitap taslak YAZI) oluşturmak için 200 şeklinde.

POST /-çizgi roman-kitap taslak302, Yer Buldu: /draft-çizgi roman-kitap/3, çizgi roman taslak Yönlendirme (ıd: 3) kapsar (ikili).

/- Çizgi roman-kitap taslak/3 OLSUNTAMAM, 200 taslak çizgi roman (ıd: 3) kapsar.

Taslak-çizgi roman-kitap/3/kapakları /GET200 TAMAM, taslak kapakları Olsun çizgi roman (/- comic-taslak defteri/3).

/Draft-çizgi roman-kitap/3/AL kapaklar/yeniTAMAM, taslak çizgi roman (/- comic-taslak defteri/3) kapak (form: taslak-çizgi roman-kitap/3/kapakları /YAZI) oluşturmak için 200 şeklinde.

Taslak-çizgi roman-kitap/3/kapakları POST /302, Yer Buldu: /draft-çizgi roman-kitap/3/kapaklar, taslak çizgi roman için yeni kapak için (/draft-çizgi roman/3//1 kapsar) Yönlendirin.

ELDE taslak-çizgi roman-kitap/3/yayınlamak/Taslak çizgi roman yayınlamak için TAMAM, 200 form (ıd: 3) (form: YAZILAN /yayınlanan comic-kitap).

Yayınlanan comic-kitap POST /302, Yer Buldu: /comic-kitap/3, yayınlanan çizgi roman Yönlendirme (ıd: 3) kapsar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • booba1234

    booba1234

    22 Temmuz 2006
  • FrankJavCee

    FrankJavCee

    29 Kasım 2008
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008