Apa perbedaan antara sistem REST dan sistem yang RESTful?
Dari beberapa hal yang pernah saya baca, yang disebut layanan REST sebenarnya adalah layanan RESTful. Jadi apa bedanya keduanya.
Apa perbedaan antara sistem REST dan sistem yang RESTful?
Dari beberapa hal yang pernah saya baca, yang disebut layanan REST sebenarnya adalah layanan RESTful. Jadi apa bedanya keduanya.
Jawaban:
Representational state transfer (REST) adalah gaya arsitektur perangkat lunak. Sebagaimana dijelaskan dalam disertasi oleh Roy Fielding, REST adalah "gaya arsitektur" yang pada dasarnya memanfaatkan teknologi dan protokol Web yang ada.
RESTful biasanya digunakan untuk merujuk ke layanan web yang mengimplementasikan arsitektur semacam itu.
architect
dari apa? dari url? seperti https://translation.googleapis.com/language/translate/v2
ini gaya REST?
Untuk membedakan atau membandingkan 2 ini, Anda harus tahu apa itu REST .
REST ( RE Presentational S tate T ransfer) pada dasarnya adalah gaya arsitektur pembangunan yang memiliki beberapa prinsip:
Itu harus stateless
Seharusnya mengakses semua sumber daya dari server hanya menggunakan URI
Tidak memiliki enkripsi bawaan
Tidak ada sesi
Ia menggunakan satu dan hanya satu protokol - HTTP
Untuk melakukan operasi CRUD, itu harus menggunakan HTTP kata kerja seperti get
, post
, put
dandelete
Seharusnya mengembalikan hasil hanya dalam bentuk JSON atau XML, atom, OData dll. (Data ringan)
REST based services
ikuti beberapa prinsip di atas dan tidak semua
RESTFUL services
berarti mengikuti semua prinsip di atas.
Ini mirip dengan konsep:
Object-based languages
mendukung semua konsep OOP, contoh : C ++, C #
Object oriented languages
mendukung beberapa fitur OOP, contoh : JavaScript, VB
Contoh :
ASP Dot NET MVC 4 REST-Based
sementara Microsoft WEB API RESTFul
.
MVC hanya mendukung beberapa prinsip REST di atas sedangkan API WEB mendukung semua Prinsip REST di atas.
MVC hanya mendukung yang berikut dari REST API
Kami dapat mengakses sumber daya menggunakan URI
Ini mendukung kata kerja HTTP untuk mengakses sumber daya dari server
Itu dapat mengembalikan hasil dalam bentuk JSON, XML, yaitu HTTPResponse.
Namun, pada saat bersamaan di MVC
Kita bisa menggunakan sesi ini
Kita bisa membuatnya menjadi negara
Kami dapat mengembalikan video atau gambar dari metode aksi pengontrol yang pada dasarnya melanggar prinsip REST
Itulah mengapa MVC adalah REST-Based
sedangkan API WEB mendukung semua prinsip di atas dan sekarang RESTFul
.
"REST" adalah paradigma arsitektur. "RESTful" menggambarkan penggunaan paradigma itu.
architect
dari apa? dari url? seperti https://translation.googleapis.com/language/translate/v2
ini gaya REST?
Seperti yang dikatakan Jason dalam komentar, RESTful hanya digunakan sebagai kata sifat yang menggambarkan sesuatu yang menghormati batasan REST.
REST adalah singkatan dari transfer negara representasional. Itu berarti bahwa negara itu sendiri tidak ditransfer tetapi hanya representasi dari itu. Contoh paling umum adalah aplikasi berbasis server HTML murni (tanpa javascript). Browser tidak tahu apa-apa tentang aplikasi itu sendiri tetapi melalui tautan dan sumber daya, server dapat mentransfer status aplikasi ke browser. Di mana tombol biasanya akan mengubah variabel status (mis. Halaman terbuka) di aplikasi windows biasa, di browser Anda memiliki tautan yang mewakili perubahan status tersebut.
Idenya adalah menggunakan hypermedia. Dan mungkin untuk membuat tipe hypermedia baru. Berpotensi kita dapat memperluas browser dengan javascript / AJAX dan membuat jenis hypermedia kustom baru. Dan kami akan memiliki aplikasi REST yang benar.
Ini adalah versi singkat saya tentang apa yang dimaksud dengan REST, masalahnya adalah sulit untuk diimplementasikan. Saya pribadi mengatakan RESTful, ketika saya ingin membuat referensi ke prinsip-prinsip REST tetapi saya tahu saya tidak benar-benar menerapkan seluruh konsep REST. Kami tidak benar-benar mengatakan SOAPful, karena Anda menggunakan SOAP atau tidak. Saya pikir kebanyakan orang tidak melakukan REST seperti yang dibayangkan oleh penciptanya Roy Fielding, kami benar-benar menerapkan arsitektur RESTful atau RESTlike. Anda dapat melihat disertasinya , dan Anda akan menemukan singkatan REST tetapi bukan kata RESTful.
REST adalah gaya arsitektur perangkat lunak untuk perangkat lunak terdistribusi
Sesuai dengan batasan REST disebut sebagai 'RESTful'.
Sangat digunakan hari ini untuk membangun layanan web sebagai alternatif untuk SOAP.
Di sini Anda memiliki beberapa tautan untuk diperiksa
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.computerworld.com/s/article/297424/Representational_State_Transfer_REST_
http://www.ibm.com/developerworks/webservices/library/ws-restful/
terima kasih atas jawabannya. Baca artikel ini oleh Alex Rodriguez yang menunjukkan bahwa layanan web RESTful memiliki 4 karakteristik dasar yaitu:
Representational State Transfer (REST) adalah gaya arsitektur perangkat lunak untuk sistem hypermedia yang didistribusikan seperti World Wide Web. Istilah Representational State Transfer diperkenalkan dan didefinisikan pada tahun 2000 oleh Roy Fielding 1 [2] dalam disertasi doktoralnya. Fielding adalah salah satu penulis utama dari spesifikasi Hypertext Transfer Protocol (HTTP) versi 1.0 dan 1.1. Sesuai dengan batasan REST disebut sebagai 'RESTful'. Sumber: Wikipedia
Layanan web pada dasarnya adalah situs web yang isinya dikonsumsi oleh program komputer, bukan orang. REST adalah seperangkat prinsip arsitektur yang menetapkan bahwa layanan web harus secara maksimal memanfaatkan HTTP dan standar web lainnya, sehingga program mendapatkan semua hal baik yang sudah dapat diperoleh orang dari web. REST sering dikontraskan dengan layanan web SOAP, dan layanan web berorientasi "panggilan prosedur jarak jauh" lainnya.
Presentasi Stefan Tilkov tentang REST di Parleys.com cukup bagus, terutama yang ini .
Untuk sebuah buku, Anda tidak bisa mendapatkan yang lebih baik dari Richardson dan Ruby's Restful Web Services .
Layanan berdasarkan REST disebut "layanan tenang".
Sumber yang saya andalkan adalah: Dr.Dobbs Archive
Ada 4 level API yang didefinisikan dalam Richardson Maturity Model. Ini didefinisikan sebagai:
level 0: sistem apa pun yang memiliki titik akhir tunggal untuk semua apisnya (SOAP atau RPC termasuk dalam kategori ini). Apis Level 0 juga bisa menyerupai "perintah".
level 1: sistem yang dijelaskan ResourceUri. Ini adalah sistem yang mendefinisikan banyak URI berbasis entitas (daripada memiliki titik akhir tunggal seperti sistem level 0). URI ini dapat menggunakan berbagai tindakan http (POST, GET, PUT, dll) untuk menerapkan tindakan berbeda terhadap sumber daya itu.
level 2: alias level 1 dengan penggunaan metode / verba HTTP standar dan respons kode multi status
level 3: alias level 2 plus HATEOAS (hypermedia termasuk dalam respons yang menjelaskan panggilan tambahan yang dapat Anda lakukan)
Sementara level 1, level 2, dan level 3 dapat dianggap sebagai sistem REST, hanya level yang lebih ketat (alias level 2 dan level 3) yang dianggap sebagai RESTful.
Jadi intinya semua RESTful apis adalah REST apis, tetapi tidak semua REST apis adalah RESTful
"Layanan REST" dan "layanan ISTIRAHAT" adalah satu dan sama.
Sistem RESTful adalah sistem apa pun yang mengikuti konvensi REST sebagaimana didefinisikan dalam dokumen asli yang menciptakan gagasan aplikasi jaringan RESTful .
Perlu dicatat ada berbagai tingkat RESTfulness. Secara keseluruhan, REST adalah gaya, bukan standar, sehingga ada ruang untuk interpretasi berdasarkan kebutuhan. salah satu contohnya adalah URL sumber daya hierarkis (mis. /things/ID/relatedthings
) vs URL datar (mis. /things/ID
dan /relatedthings?thing=ID
)