SABUN, SISA DAN KREATIVITAS ORANG
SOAP memerlukan dokumen deskripsi seperti WSDL karena setiap sumber daya dapat dikonsumsi dengan pesan yang berbeda, tidak ada definisi pada protokol tentang batasan untuk kemungkinan nama / pesan yang dapat Anda manipulasi sumber daya.
Misalnya, dalam SOAP layanan web Anda yang memungkinkan klien memanipulasi pengguna dapat mengekspos operasi yang membuat pengguna dalam banyak pesan berbeda, seperti:
addUser
createUser
insertUser
Tentu saja, ini hanya beberapa contoh pesan, karena saya telah melihat banyak nama metode layanan web yang lucu. Ada orang yang sangat kreatif di luar sana.
Di sisi lain, jika Anda mengekspos sistem mendasar Anda menggunakan api web yang benar-benar menghormati prinsip-prinsip REST, klien hanya perlu tahu bahwa Anda memiliki sumber daya bernama Pengguna, karena ada 99% kemungkinan Anda dapat membuat pengguna di ini cara
POST /Users
Dan ini terjadi untuk setiap operasi yang ingin Anda paparkan menggunakan SOAP atau web api REST.
Meskipun menjadi SOAP protokol, yang membatasi apa yang Anda bisa atau tidak bisa lakukan, dan menjadi REST arsitektur gaya, yang menyisakan banyak titik terbuka tentang bagaimana melakukan sesuatu. Ada upaya untuk mendefinisikan konvensi tentang cara mengekspos dan mengonsumsi apis web REST.
MENJELASKAN SISA API WEB
Di bidang cara mendeskripsikan REST api web, saya dapat mengutip Swagger . Ini bukan upaya untuk membuat WSDL seperti ke web api REST, tetapi ini merupakan upaya yang baik untuk membuat standar terbuka untuk menggambarkan web apis REST.
Swagger adalah spesifikasi dan implementasi kerangka kerja lengkap untuk menggambarkan, memproduksi, mengonsumsi, dan memvisualisasikan layanan web RESTful.
Saya menggunakan Swagger banyak dan sangat menyukainya, terutama karena Swagger UI yang memungkinkan Anda menghasilkan konsol dan dokumentasi live yang bagus untuk api web Anda.
Ada banyak implementasi Swagger untuk sebagian besar bahasa: C #, Java, Python, Ruby, dll.
Jika Anda menggunakan ASP .NET Web API, ada beberapa proyek untuk secara otomatis menghasilkan spesifikasi Swagger, seperti Swagger.NET
MENGHASILKAN KLIEN UNTUK SISA API WEB
Karena kendala REST, seperti kumpulan kata kerja terbatas (GET, POST, PUT, DELETE, dll) tidak begitu sulit untuk menghasilkan pustaka klien ke REST api web.
Proyek-proyek seperti WebApiProxy dapat dengan mudah menghasilkan klien melakukan C # dan Javascript.
KONVENSI UNTUK SISA API WEB
Untuk menjaga kehidupan kita sebagai pengembang lebih mudah adalah baik mendefinisikan beberapa konvensi tentang bagaimana api web REST kami akan berperilaku, upaya terbaik yang saya tahu di bidang ini adalah ebook Apigee - Web Api Design yang sangat bagus . E-book ini bukan upaya untuk membuat Alkitab atau mantra tentang cara mendesain api Anda, melainkan kumpulan konvensi yang diamati di web REST apis besar, seperti Twitter, Facebook, Linkedin, Google, dll.