สิ่งหนึ่งที่ developer ควรทำความเข้าใจก็คือ
เรื่องของ REST vs SOAP
ก่อนตัดสินใจใช้นั้น ควรรู้และเข้าใจก่อนว่า
- REST และ SOAP คืออะไร ?
- ทั้งสองมีข้อดีและข้อเสียอย่างไร ?
- ใช้งานแต่ละตัวเมื่อใด ?
แนวคิดพื้นฐาน
SOAP นั้นต้องสร้างให้ application logic ออกมาเป็น service ทำให้การตั้งชื่อเป็นดังนี้- getUserInformation
- payInvoice
- userinformation
- invoice
ข้อดีและข้อเสียของ SOAP
ข้อดี- สามารถทำงานอยู่บน protocol ใด ๆ ก็ได้
- อธิบาย service ด้วย WDSL (Web Service Description Language)
- มีความน่าเชื่อถือ เมื่อเกิดปัญหาสามารถทำการ retry ได้
- สนับสนุนเรื่อง security อยู่แล้ว ทั้ง authentication, authorization และ การเข้ารหัสข้อมูล
- ยากต่อการพัฒนา ทำให้ไม่เป็นที่นิยมสำหรับระบบ web และ mobile
- สนับสนุนรูปแบบข้อมูล XML เพียงอย่างเดียว
- เนื่องจากมันเป็น standard ทำให้มีข้อจำกัดเยอะ
- เนื่องจากโครงสร้างมันมีหลายส่วนทำให้มี overhead สูง หรือ ต้องใช้ bandwidth สูงกว่า REST
ข้อดีและข้อเสียของ REST
ข้อดี- ทำการอยู่บน HTTP และทำตามมาตรฐานของ HTTP จึงทำให้พัฒนาได้ง่าย
- สนับสนุนรูปแบบข้อมูลมากมาย เช่น XML, JSON, Plain Text และอื่น ๆ อีกมากมาย
- รองรับการขยายระบบได้ง่าย
- มีประสิทธิภาพการทำงานที่ดี
- รองรับเรื่อง caching ข้อมูล
- ทำงานได้เฉพาะ HTTP protocol เท่านั้น
- ไม่มีเรื่องของ security และ reliability มาให้ในตัว ดังนั้นต้องทำเอง
- รูปแบบข้อมูลที่ส่งไปมาระหว่าง client-server ไม่มีข้อจำกัดอะไรเลย
คำถามที่น่าสนใจคือ จะใช้ SOAP และ REST เมื่อใดบ้าง ?
ใช้ SOAP เมื่อ ต้องการจัดการ transaction เมื่อต้องทำงานกับหลาย ๆ ระบบ ต้องการความเข้มงวดในการเชื่อมต่อระหว่าง client/server ตัวอย่างเช่น Finacial service และ Telecommunication service ดังนั้นจึงไม่แปลกว่า ทำไมในองค์กรใหญ่ ๆ เหล่านี้ใช้ SOAP กันมาก ใช้ REST เมื่อ ต้องการลดขนาดของข้อมูล และ จำนวน bandwidth ที่ใช้งาน ต้องการเมื่อทำงานอยู่บนระบบ web และ mobile ตัวอย่างเช่น Social media service, Web Chat service ดังนั้นจึงไม่แปลกว่า ทำไมระบบ web และ api ต่าง ๆ ผ่าน web จึงเป็น REST บางคนไปหาข้อมูลสำหรับ Open API น่าจะข้อมูลดังนี้ ซึ่งบอกว่า REST มันได้รับความนิยมกว่า SOAP มากมายสุดท้ายแล้ว ก่อนจะเลือกใช้งานอะไร
ต้องมีความรู้พื้นฐานก่อน ต้องมีความเข้าใจก่อน ต้องเข้าใจความต้องการของระบบก่อน จึงจะเลือกได้อย่างถูกต้องและเหมาะสมมิใช่เพียงฟังเขาบอกมา ว่ามันดี จึงใช้ตาม !!ปิดท้ายด้วย Infographic ของ REST vs SOAP Reference Websites http://stackoverflow.com/questions/19884295/soap-vs-rest-differences https://dzone.com/articles/rest-or-soap-which-one-to-use http://searchsoa.techtarget.com/tip/REST-vs-SOAP-How-to-choose-the-best-Web-service