Menerapkan desain tenang untuk seluruh situs web?

11

Ini semua mungkin terlihat sangat baru, tetapi saya mencoba membungkus kepala saya merancang sebuah situs web yang benar-benar tenang. Saya memahami penerapan RESTful desain untuk hal-hal seperti Pengguna, Foto, Posting Blog, dll karena saya menganggap mereka seperti "objek".

Tapi, bagaimana dengan halaman "tentang kami". Sumber daya macam apa itu? Apakah itu bahkan sumber daya dalam arti kata ISTIRAHAT? Juga, katakan saya buka URL "http://www.example.com/", sumber daya apa yang saya minta? Sumber daya indeks?

TaylorOtwell
sumber
Saya pikir diperlukan klarifikasi. Apa tujuan akhir Anda. Apa perlunya desain yang tenang. mengambil tenang dari persamaan, apa yang perlu Anda coba untuk memuaskan?
Jonathan Kaufman
1
Tujuan akhirnya adalah situs web yang lengkap. Merancang situs web di sekitar desain yang tenang tampaknya masuk akal berdasarkan cara web bekerja. Saya hanya tidak yakin bagaimana menerapkan desain semacam itu pada hal-hal yang tidak tampak seperti sumber daya, seperti halaman tentang atau kontak.
TaylorOtwell

Jawaban:

6

Pola sumber daya situs web RESTful paling umum yang saya lihat adalah untuk menambahkan tampilan ke URI:

/ resourcetype / identifier [/ view ] [/ halaman] [? filterparams]

Ketika tidak ada tampilan , Anda cukup melayani tampilan default. Dalam kasus Anda:

  • / - permintaan untuk example.commengembalikan tampilan default untuk sumber daya tingkat atas - situs web Anda.
  • / aboutus - pandangan "Tentang kami" dari sumber daya tingkat atas. Atau, sebagai alternatif, aboutusbisa menjadi pengidentifikasi bernama untuk sumber daya dalam lingkup CMS tingkat atas. *
  • / customers / 1 / aboutus - permintaan ini akan menunjukkan pandangan "Tentang kami" yang dicakup oleh pelanggan 1 .

Yang sedang berkata, kadang-kadang yang terbaik adalah sedikit fudge untuk semantik yang lebih baik. Sebagai contoh, StackOverflow menggunakan RESTful / pertanyaan / [id] untuk pertanyaan, tetapi halaman Tanya Pertanyaan adalah / pertanyaan / tanyakan yang tidak terlalu tenang ( askbukan questionssumber daya) tetapi masuk akal untuk menggunakan manusia biasa.


* Dalam CMS di tingkat atas, tipe sumber daya sering, tetapi tidak selalu, dihapus karena berlebihan.

Nicole
sumber
10

Perlu diingat bahwa RESTful design se se dimaksudkan untuk memberikan standar dimana web menjadi dapat diprogram secara seragam. Tidak selalu tepat atau berguna untuk mengubah seluruh situs web Anda yang menghadap ke manusia menjadi semantik REST murni.

Ketika Anda memiliki sumber daya, mengingat representasi mereka bermanfaat. Penting juga untuk mempertimbangkan prinsip-prinsip desain REST lainnya, seperti statelessnes, dan bagaimana mereka memengaruhi kinerja dan kegunaan situs web Anda. Tapi ingat bahwa REST adalah alat, bukan tujuan. Ini sarana, bukan tujuan.

Gunakan semantik RESTful di mana berguna , setelah memahami tujuan dan manfaatnya, dan jangan berkeringat jika situs Anda tidak sepenuhnya tenang. Hampir tidak mungkin untuk situs non-sepele dalam acara apa pun.

TL; DR : REST adalah alat. Gunakan kapan dan di mana itu berguna tetapi jangan terikat dengannya.

Rein Henrichs
sumber
2
+1 Ada yang lebih banyak daripada URL.
Josh Noe
Ajax, REST, dan tautan eksternal ke situs REST Anda bisa menjadi mimpi buruk. Terima kasih atas jawaban Anda.
johnny
4

Tapi, bagaimana dengan halaman "tentang kita" [?] Sumber daya macam apa itu?

Kompleks. Tidak ada yang salah dengan sumber daya yang memiliki komponen, potongan atau struktur.

Sumber daya bukanlah "baris basis data relasional" atau hal-hal atom lainnya. Itu sumber daya.

Database berorientasi dokumen menangani ini dengan lebih anggun karena sumber daya dapat lebih besar dan lebih terstruktur.

Apakah itu bahkan sumber daya dalam arti kata ISTIRAHAT?

Iya.

Juga, katakan saya buka URL "http://www.example.com/", sumber daya apa yang saya minta?

Tidak.

Anda meminta sumber daya "aboutus". Mungkin saja (tetapi aneh) bagi sumber daya untuk menjadi lajang. Tidak ada ID dan bukan "daftar".

http://www.example.com/aboutus/?format=xml

Mengembalikan dokumen XML yang kompleks dengan banyak potongan dan bagian. Tidak ada yang salah dengan itu.

Sumber daya indeks?

Tidak berarti banyak dalam arti "TENANG". Halaman "indeks" adalah untuk orang-orang. Aplikasi yang menggunakan API RESTful dirancang untuk meminta jenis sumber daya tertentu.

S.Lott
sumber
4
+1 Saya ingin menunjukkan poin penting dari jawaban Anda: REST adalah paradigma yang dapat diprogram; itu tidak selalu dimaksudkan untuk konsumsi manusia.
Rein Henrichs
1

Saya akan menjaga pandangan saya independen dari back-end. Anda dapat meminta back-end untuk sumber daya seperti hal-hal yang terjadi pada akordeon, bilah navigasi, dan objek lain yang berkaitan dengan tubuh. Namun, Anda harus meninggalkan pemrosesan representasi sumber daya ini ke kode klien Anda, yang pada akhirnya akan membuatnya sesuai dengan persyaratan.

SPI
sumber
1

Sumber daya untuk "Tentang Kami" adalah ... Kami :) eh, Anda. Pikirkan atribut-atribut Anda yang ingin Anda publikasikan, dan gulung semua itu sebagai kata benda dengan representasi.

Nilai-nilai itu tidak harus berasal dari database ... itu mungkin akan menjadi banyak nilai string, dan itu bisa berasal dari konfigurasi, atau bahkan mungkin hard-coded di kelas.

rampok
sumber