ข้อแตกต่างระหว่าง SOAP กับ REST

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: ข้อแตกต่างระหว่าง SOAP กับ REST

ข้อแตกต่างระหว่าง SOAP กับ REST

โดย bankjittapol » 30/10/2019 2:01 pm

SOAP (Simple Object Access Protocol) โปรโตคอลมาตรฐานที่ใช้ใน Web Services เป็นโพรโทคอล ( Protocol )ในการติดต่อแลกเปลี่ยนข้อมูลระหว่างกันของ web services เป็นโพรโทคอลการสื่อสาร ในระดับ Application Layer โดยสามารถอ่านเพิ่มเติม ได้ ที่นี่

REST (Representational state transfer) คือ การสร้าง Webservice ชนิดหนึ่งที่พัฒนาแบบ Software architecture การทำงานของ RESTful จะอาศัย URI/URL ของ request เพื่อค้นหา และประมวลผลแล้วตอบกลับไปในรูป XML, HTML, JSON โดย response ที่ตอบกลับจะเป็นการยืนยันผลของคำสั่งที่ส่งมา และยังสามารถ ใช้ HTTP verbs คือ GET,POST,PUT และ DELETE โดยสามารถอ่านเพิ่มเติมได้ ที่นี่

ข้อแตกต่าง ของ SOAP กับ REST
- SOAP สามารถทำงานอยู่บน โปรโตคอลใดก็ได้ แต่ REST สามารถทำงานอยุ่บน HTTP โปรโตคอล เท่านั้น
- REST สนับสนุนรูปแบบข้อมูลมากมาย เช่น XML, JSON, HTML และอื่น ๆ ในขณะที่ SOAP สนับสนุนเพียง XML เท่านั้น
- SOAP มักถูกใช้ในองค์กรใหญ่ที่ต้องการจัดการหลายๆระบบ และใช้ bandwidth สุงเนื่องจากโครงสร้างมันมีหลายส่วนทำให้มี overhead สูง
- REST มักจะถูกใช้เมื่อต้องการลดขนาดของข้อมูล และ จำนวน bandwidth ที่ใช้งาน และเมื่อต้องการทำงานอยู่บนระบบ web และ mobile

ตัวอย่าง SOAP บน HTTP

โค้ด: เลือกทั้งหมด

POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 299
SOAPAction: "http://www.w3.org/2003/05/soap-envelope"

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:m="http://www.example.org/stock/Surya">
  <soap:Header>
  </soap:Header>
  <soap:Body>
    <m:GetStockPrice>
      <m:StockName>GOOGLE</m:StockName>
    </m:GetStockPrice>
  </soap:Body>
</soap:Envelope>
ตัวอย่าง REST POST Method

โค้ด: เลือกทั้งหมด

POST http://MyService/Person/
Host: MyService
Content-Type: text/xml; charset=utf-8
Content-Length: 123
<?xml version="1.0" encoding="utf-8"?>
<Person>
 <ID>1</ID>
 <Name>M Vaqqas</Name>
 <Email>[email protected]</Email>
 <Country>India</Country>
</Person>
ตัวอย่าง REST GET Method

โค้ด: เลือกทั้งหมด

GET http://www.w3.org/Protocols/rfc2616/rfc2616.html HTTP/1.1
Host: www.w3.org
Accept: text/html,application/xhtml+xml,application/xml; …
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 …
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,hi;q=0.6
อ้างอิง
https://www.softmelt.com/article.php?id=580
https://saixiii.com/what-is-soap/
https://saixiii.com/what-is-restful/
https://www.blognone.com/news/5968/rest-vs-soap-web-services

ข้างบน