Semua orang saat ini melakukan SOA , bahkan jika beberapa tidak benar-benar mengerti tentang apa itu. Jadi mereka salah melakukannya. Menggunakannya sebagai analogi, saya tahu apa itu REST (atau setidaknya saya pikir saya tahu) dan ingin melakukannya. Tetapi saya ingin melakukannya dengan benar.
Jadi pertanyaan saya adalah apa cara yang tepat untuk melakukan REST?
rest
soa
resources
implementations
JohnDoDo
sumber
sumber
Jawaban:
Ya, ada banyak cara untuk belajar bagaimana membangun aplikasi web yang tenang dan tidak, tidak ada cara yang benar dan unik. RESTful bukan standar tetapi menggunakan seperangkat standar (HTTP, URI, Mime Type, ...).
Mulailah dengan ini: Bagaimana Saya Menjelaskan REST kepada istri saya
Kemudian, lanjutkan dengan ini: Cookbook Layanan Web RESTful
Dan kemudian mengerahkan seluruh upaya Anda untuk mengembangkan aplikasi web karena cara terbaik untuk belajar adalah melakukan eksperimen dan Anda dapat belajar banyak dari kesalahan Anda;)
Jangan khawatir jika aplikasi web pertama Anda tidak akan sepenuhnya tenang: Anda akan menemukan cara untuk melakukannya!
Jadi, mengutip Obi-Wan Kenobi, "semoga kekuatan itu menyertai Anda!" ;)
EDIT
Ok, izinkan saya lebih spesifik. Anda ingin membuat webapp yang tenang, ya? Yah, seperti yang saya katakan ada banyak cara untuk melakukannya tetapi ini adalah pedoman utama.
Definisi
REST (Representational State Transfer) adalah gaya arsitektur perangkat lunak untuk sistem terdistribusi (seperti WWW). Ini bukan standar tetapi menggunakan seperangkat standar: HTTP, AJAX, HTML, URI, Mime Type, dll. Kita berbicara tentang representasi sumber daya, bukan tentang sumber daya itu sendiri. Diambil dari 'Bagaimana saya menjelaskan REST kepada istri saya':
Kendala Arsitektur
Antarmuka Seragam
CRUD
Oke, kami melihat bahwa untuk mengidentifikasi sumber daya, kami dapat menggunakan URI, tetapi kami membutuhkan sesuatu yang lain untuk tindakan (menambah, memodifikasi, menghapus, dll.): Selamat datang di CRUD (Buat, Baca, Perbarui dan Hapus).
Sekarang, mengenai PUT dan HAPUS, beberapa masalah teknologi dapat muncul (Anda akan mendapatkannya dengan bentuk HTML): sering pengembang memintas masalah ini menggunakan POST untuk setiap permintaan 'PUT' dan 'HAPUS'. Secara resmi, Anda harus menggunakan PUT dan DELETE. Omong-omong, lakukan apa yang Anda inginkan. Pengalaman saya mendorong saya untuk menggunakan POST dan GET setiap waktu.
--- Bagian selanjutnya harus digunakan tetapi itu bukan ikatan REST: ini menyangkut Data Terkait ---
URI
URI abstrak dari detail teknis! Ucapkan selamat tinggal pada URI sebagai berikut:
URI desain ulang! Ambil tautan di atas dan ubah sebagai berikut:
Itu jauh lebih baik, ya? Itu bisa dilakukan dengan:
Hal lain: gunakan URI yang berbeda untuk mewakili sumber daya yang berbeda:
Perhatikan : about.html dan about.rdf bukan file! Mereka bisa menjadi hasil dari transformasi XSLT!
Negosiasi Konten
Jika Anda telah mencapai titik ini, selamat! Mungkin, Anda siap untuk mendapatkan konsep yang lebih abstrak karena kami memasukkan rincian teknis Web Semantic;) Nah, ketika klien Anda menginginkan sumber daya, biasanya ia membuat permintaan berikut:
Tetapi server tidak akan merespons dengan about.rdf karena memiliki URI yang berbeda ( http://www.example.com/about.rdf ). Jadi, mari kita lihat pola 303 ! Server akan mengembalikan ini:
Dan klien akan mengikuti tautan yang dikembalikan sebagai berikut:
Akhirnya, server akan mengembalikan sumber daya yang diminta:
Jangan khawatir: aplikasi klien Anda tidak akan melakukan hal ini! Pola 303 harus dilakukan oleh aplikasi server dan browser Anda akan melakukan sisanya;)
Kesimpulan
Seringkali teorinya jauh, jauh dari praktik. Ya, sekarang Anda tahu cara mendesain dan mengembangkan aplikasi RESTful tetapi pedoman di atas hanyalah sebuah petunjuk. Anda akan menemukan cara terbaik untuk membangun aplikasi web dan mungkin itu tidak akan sama dengan yang diinginkan teori. Jangan peduli: D!
Bibliografi
Layanan Web Tenang, Sameer Tyagi
API REST harus berbasis hiperteks, Roy Thomas Fielding
Layanan web yang tenang: Dasar-dasarnya, Alex Rodriguez
Alur Kerja REST Webber
sumber
Tidak perlu buku Alkitab; Saya memiliki pertanyaan yang persis sama, dan mempelajari semua yang saya butuhkan atau ingin ketahui tentang REST dengan membaca tiga artikel ini:
Seperti yang akan Anda baca di artikel di atas, kuncinya adalah memikirkan potongan-potongan yang dapat diakses dari aplikasi Anda sebagai "sumber daya" yang dapat dibuat, diambil, diperbarui, atau dihapus menggunakan "kata kerja" HTTP yang ada: GET, PUT, POST , MENGHAPUS.
Juga, ketahui perbedaan antara PUT dan POST , dan kapan menggunakannya. DAPATKAN, PUT, DAN HAPUS seharusnya transaksi idempoten, POST tidak boleh.
Selain itu, manfaatkan kode status HTTP saat berkomunikasi kembali ke klien.
sumber