REST vs. SOAP Web Services

tags:

ในการพัฒนาเว็บเซอร์วิสนั้นเราสามารถเลือกที่จะพัฒนาแบบ SOAP หรือแบบ REST ก็ได้ ถ้าเราพัฒนา SOAP Web services เราจะต้องมีการส่งข้อความ XML (เอกซ์เอ็มแอล) ตามรูปแบบที่กำหนดไว้โดยโปรโตคอล SOAP อีกทั้งต้องมีเอกสารอธิบายการเรียกใช้เว็บเซอร์วิสประกอบ ซึ่งเอกสารที่อธิบายนี้จะเขียนโดยใช้ภาษา WSDL (วิสเดิล) ในแง่ของผู้เรียกใช้ จะต้องมีการเข้าใจเอกสารที่อฺธิบายการเรียกใช้ SOAP Web services หรือมีเครื่องมือที่จะเข้าใจและเรียกใช้ได้อย่างถูกต้อง ในขณะที่ REST Web service จะเป็นรูปแบบของซอฟต์แวร์ที่มองว่าข้อมูลต่าง ๆ เป็น Resource ซึ่งคนสามารถเรียกใช้ได้ผ่านทางโปรโตคอล HTTP และข้อมูลที่ส่งกลับมาให้ผู้ใช้เป็นข้อมูลรูปแบบ XML ใด ๆ ก็ได้ ในแง่ของผู้เรียกใช้ REST Web service ก็ขอเพียงแค่ให้ทราบ URL ของ REST Web service และการอ่านข้อมูล XML ก็จะดึงข้อมูลที่ตนเองต้องการได้

จากการสังเกตแนวโน้มของเว็บเซอร์วิสที่พัฒนาและเรียกใช้จริงในขณะนี้ พบว่า บริษัทใหญ่ ๆ เริ่มที่จะเลิกสนับสนุนการเรียกใช้ SOAP Web services และบางบริษัทไม่ได้สนับสนุนตั้งแต่แรก เช่น บริษัท Google ได้หยุดการพัฒนาฟังก์ชันใหม่ของ SOAP Search API ตั้งแต่วันที่ 5 ธันวาคม 2549 บริษัท Amazon กำลังจะหยุดการให้บริการ Amazon Web services โดยใช้ SOAP กับภาษา Ruby on Rails ส่วนบริษัท Yahoo ไม่เคยสนับสนุนการเรียกใช้ SOAP Web services ตั้งแต่เริ่มให้บริการต่าง ๆ

ที่มา

audy's picture
  • ชอบ REST มากกว่า SOAP เพราะเขียนง่าย
  • เคยมีปัญหา ใช้ 3rd เรียกเซอร์วิสกับ SOAP แต่ทำยังไงก็ไม่ได้ สุดท้ายสร้าง SOAP message เอง จาก WSDL แล้วยิงตรงๆ (POST) โดยใช้ curl ผลลัพธ์คือมันใช้งานได้ ตั้งแต่นั้นมา เลยเลิกใช้ 3rd ทั้งหลาย
  • เมืองไทย ไม่ค่อยมีเซอร์วิสอะไรให้เล่น ของกรมสรรพากร ก็ไกลตัวไป
  • ชอบ Gdata ของ Google เจ๋งดี เอาไปปลิ้น พลิกแพลงได้อีกหลายกระบวนท่า คิดได้ไง?
mk's picture

ขอให้เขียนลิงก์ด้านล่างเป็น list แล้วก็เติม tag ด้วยนะครับ อ่าน tag ที่เหมาะสมได้จากประกาศเก่าๆ

krunapon's picture

ขอโทษด้วยค่ะที่ลืมแขียน tag และ list

mk's picture

ใส่ list แล้วช่วยลบลิงก์เก่าตรงท้ายข่าวออกด้วยนะครับ

smilelovehappiness's picture

เคยทำแต่ SOAP ไม่เคยใช้ REST เลย สงสัยต้องไปอ่านบ้างแล้ว

cwt's picture

ที่แผนกที่ผมทำอยู่ก็ใช้แต่ XML-RPC กับ REST ครับ ตอนติดต่อกับ SOAP แผนกอื่นก็ใช้ pycurl เรียกเอาเพราะ WSDL ของ .Net เหมือนจะไม่ค่อยเข้ากันได้กับชาวบ้าน

pittaya's picture

รู้สึกว่า SOAP มันออกแบบมา overly complex ไปน่ะครับ (คล้ายๆ ภาษาบางภาษา) ชอบ REST เพราะมันเข้าใจง่ายดี


Don’t think, Just read
Patrickz's picture

ชอบ REST มากมาย

Patrickz’s blog blog @ G2K blog @ narisa

Site Search

 
Web blognone.com

Poll