WSDL, SOAP และ REST คืออะไร


153

WSDLคืออะไร เกี่ยวข้องกับสบู่อย่างไร? ส่วนที่เหลือจะพอดีกับที่ทั้งหมด?


2
คุณกำลังมองหา "ตัวอย่าง" ชนิดใด อย่างที่ฉันพูดไปมันไม่ใช่เรื่องง่ายที่คุณจะได้รับตัวอย่าง "ง่าย ๆ " ของ
John Saunders

คำตอบ:


180

WSDL เป็นเอกสาร XML ที่อธิบายบริการเว็บ จริง ๆ แล้วย่อมาจากคำอธิบายบริการเว็บภาษา

SOAP เป็นโปรโตคอลบน XML ที่ให้คุณแลกเปลี่ยนข้อมูลผ่านโปรโตคอลเฉพาะ (สามารถเป็น HTTP หรือ SMTP เป็นต้น) ระหว่างแอปพลิเคชัน มันย่อมาจาก Simple Object Access Protocol และใช้ XML สำหรับรูปแบบการส่งข้อความเพื่อถ่ายทอดข้อมูล

REST เป็นรูปแบบสถาปัตยกรรมของระบบเครือข่ายและย่อมาจาก Representational State Transfer ไม่ใช่ตัวมาตรฐาน แต่ใช้มาตรฐานเช่น HTTP, URL, XML และอื่น ๆ


4
ฉันตั้งใจจะใส่ SMTP หรือ HTTP เป็นตัวอย่างของโปรโตคอลที่สามารถใช้ SOAP ได้ ฉันไม่ได้ตั้งใจจะแปลว่า HTTP เป็นโปรโตคอลเดียวที่สามารถใช้งานได้ (เพิ่งใช้เป็นตัวอย่าง)
keith_c

7
Representational State Transfer (REST) ​​เป็นรูปแบบสถาปัตยกรรมที่ระบุข้อ จำกัด เช่นอินเทอร์เฟซที่เหมือนกันซึ่งหากนำไปใช้กับเว็บเซอร์วิสจะทำให้เกิดคุณสมบัติที่พึงประสงค์เช่นประสิทธิภาพความยืดหยุ่นและความสามารถในการปรับเปลี่ยน ในรูปแบบ REST ข้อมูลและการทำงานถือเป็นทรัพยากรและเข้าถึงได้โดยใช้ Uniform Resource Identifiers (URIs) ทรัพยากรถูกดำเนินการโดยใช้ชุดของการดำเนินการที่เรียบง่ายและชัดเจน มันเป็นไปตามสถาปัตยกรรมไคลเอนต์ / เซิร์ฟเวอร์และได้รับการออกแบบให้ใช้โปรโตคอลการสื่อสารแบบไร้รัฐซึ่งโดยทั่วไปจะเป็น HTTP
kingAm

4
'D' ใน WSDL ไม่ใช่คำว่า "คำอธิบาย" แทนที่จะเป็น "คำจำกัดความ" ใช่หรือไม่
Sparkzz

11
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language." สิ่งนี้ไม่ได้อธิบายว่ามันคืออะไร ...
Ojonugwa Jude Ochalifu

2
@Sparkzz ตามวิกิพีเดีย:The current version of WSDL is WSDL 2.0. The meaning of the acronym has changed from version 1.1 where the "D" stood for "Definition".
Bochu

106

ตัวอย่าง: พูดง่ายๆถ้าคุณมีเว็บคิดเลขของเว็บเซอร์วิส

WSDL: WSDL บอกเกี่ยวกับฟังก์ชั่นที่คุณสามารถนำไปใช้หรือเปิดเผยกับลูกค้า ตัวอย่างเช่น: เพิ่มลบลบและอื่น ๆ

SOAP: ในกรณีที่ใช้ SOAP คุณจะต้องดำเนินการเช่น doDelete (), doSubtract (), doAdd () ดังนั้น SOAP และ WSDL จึงเป็นแอปเปิ้ลและส้ม เราไม่ควรเปรียบเทียบมัน พวกเขาทั้งสองมีฟังก์ชั่นที่แตกต่างกัน

ทำไมเราใช้ SOAP และ WSDL: สำหรับการแลกเปลี่ยนข้อมูลที่เป็นอิสระของแพลตฟอร์ม

แก้ไข: ในตัวอย่างปกติในชีวิตประจำวัน:

WSDL:เมื่อเราไปที่ร้านอาหารเราจะเห็นรายการเมนูนั่นคือ WSDL

คลาสของพร็อกซี:ตอนนี้หลังจากเห็นรายการเมนูแล้วเราก็ทำตามความคิดของเรา (ประมวลผลความคิดของเราเกี่ยวกับสิ่งที่จะสั่งซื้อ): ดังนั้นโดยพื้นฐานแล้วเราทำคลาสพร็อกซีตามเอกสาร WSDL

สบู่:จากนั้นเมื่อเราสั่งอาหารตามจริงของเมนู: ความหมายเราใช้คลาสพร็อกซีเพื่อเรียกใช้วิธีการบริการที่ใช้ SOAP :)


38

ทุกครั้งที่มีคนพูดถึง SOAP / WSDL ฉันคิดว่าวัตถุและคลาสที่กำหนดใน xml ...

"คุณใช้ SOAP ในลักษณะเดียวกับคลาส PHP ใด ๆ อย่างไรก็ตามในกรณีนี้คลาสไม่มีอยู่ในระบบไฟล์แอปพลิเคชันในเครื่อง ... "ถ้าเราคิดว่าจะใช้บริการ SOAP เป็นเพียงคลาส PHP อื่นเอกสาร WSDL คือรายการวิธีและคุณสมบัติของคลาสที่มีอยู่ทั้งหมด"

http://www.doublehops.com/2009/07/07/quick-tutorial-on-getting-started-with-soap-in-php/comment-page-1/

.. และเมื่อใดก็ตามที่มีคนพูดถึง REST ฉันคิดว่าคำสั่ง HTTP (วิธีการร้องขอ) เช่น POST, GET และ DELETE


19

SOAP -> SOAP (Simple object access protocal) เป็นระดับแอพพลิเคชั่นที่สร้างขึ้นสำหรับการโต้ตอบระหว่างเครื่องจักรกับเครื่อง โปรโตคอลกำหนดกฎมาตรฐาน ทุกฝ่ายที่ใช้โปรโตคอลนี้ควรปฏิบัติตามกฎของโปรโตคอล เช่นเดียวกับ TCP มันคลายที่ชั้นการขนส่งโปรโตคอล SOAP จะถูกเข้าใจโดย Application เลเยอร์ (แอปพลิเคชันใด ๆ ที่รองรับ SOAP - Axis2, .Net)

WSDL -> ข้อความ SOAP ประกอบด้วย SoapEnevelope-> SoapHeader และ SoapBody ไม่ได้กำหนดว่าอะไรจะเป็นรูปแบบข้อความ การขนส่งทั้งหมด (HTTP, JMS) รองรับอะไรบ้าง หากไม่มีข้อมูลนี้จะเป็นการยากสำหรับลูกค้าที่ต้องการใช้บริการเว็บเฉพาะเพื่อสร้างข้อความ SOAP แม้ว่าพวกเขาจะทำพวกเขาจะไม่แน่ใจว่ามันจะทำงานตลอดเวลา WSDL คือการช่วยเหลือ WSDL (Web Service description Language) กำหนดการดำเนินงานรูปแบบข้อความและรายละเอียดการขนส่งสำหรับข้อความ SOAP

REST -> REST (การถ่ายโอนสถานะตัวแทน) ตั้งอยู่บนพื้นฐานของการขนส่ง ซึ่งแตกต่างจาก SOAP ซึ่งกำหนดเป้าหมายการดำเนินการ REST เกี่ยวข้องกับทรัพยากรมากขึ้น REST หาทรัพยากรโดยใช้ URL (ตัวอย่าง -http: // {serverAddress} / พนักงาน / employeeNumber / 12345) และขึ้นอยู่กับโปรโตคอลการขนส่ง (ด้วย HTTP - GET, POST, PUT, DELETE, ... ) สำหรับการดำเนินการ ที่จะดำเนินการเกี่ยวกับทรัพยากร เซอร์วิส REST จะหารีซอร์สตาม URL และดำเนินการตามกริยาการดำเนินการขนส่ง มันเป็นมากกว่ารูปแบบสถาปัตยกรรมและการประชุมตาม


16

คุณจะไม่ต้อง "เข้าใจ" สิ่งที่ซับซ้อน

WSDL เป็นภาษาที่ใช้ XML สำหรับอธิบายบริการเว็บ มันอธิบายข้อความการดำเนินงานและข้อมูลการขนส่งเครือข่ายที่ใช้โดยบริการ บริการเว็บเหล่านี้มักใช้ SOAP แต่อาจใช้โปรโตคอลอื่น

WSDL สามารถอ่านได้โดยโปรแกรมและอื่น ๆ อาจถูกใช้เพื่อสร้างทั้งหมดหรือบางส่วนของรหัสไคลเอนต์ที่จำเป็นในการเรียกบริการเว็บ นี่คือความหมายในการเรียกบริการบนเว็บของ SOAP ว่า "การอธิบายตนเอง"

REST ไม่เกี่ยวข้องกับ WSDL เลย


11

SOAP ย่อมาจาก Simple Access Object Protocol มันตั้งใจที่จะเป็นวิธีที่จะทำการเรียกขั้นตอนระยะไกลไปยังวัตถุระยะไกลโดยการส่ง XML ผ่าน HTTP

WSDL เป็นเว็บคำอธิบายบริการเว็บ คำขอที่ลงท้ายด้วย '.wsdl' ถึงปลายทางจะส่งผลให้ข้อความ XML อธิบายถึงคำขอและการตอบสนองที่การใช้งานสามารถคาดหวังได้ มันสืบทอดสัญญาระหว่างบริการและลูกค้า

REST ใช้ HTTP เพื่อส่งข้อความไปยังบริการต่างๆ

SOAP เป็นข้อมูลจำเพาะ REST เป็นสไตล์


2
-1: ขออภัย แต่ฉันไม่เห็นด้วยกับการเชื่อมโยง SOAP กับ RPC บริการเกี่ยวกับรูปแบบข้อความเป็นอย่างไร นอกจากนี้ยังไม่มีมาตรฐานที่ระบุว่าคำขอที่ลงท้ายด้วย. wsdl หรือ? wsdl จะสร้าง WSDL
John Saunders

4
คุณกำลังบอกว่าคุณไม่สามารถทำ RPC ด้วย SOAP ได้หรือไม่ ฉันรู้ว่าอาจไม่ครอบคลุมมาตรฐานทั้งหมด แต่เป็นแรงบันดาลใจดั้งเดิมอย่างแน่นอน ตราบใดที่ WSDL URL นั้นเป็นส่วนหนึ่งของมาตรฐานฉันจะยอมรับว่าคุณมีฉันอยู่ที่นั่น ปกติแล้วมันเป็นวิธีที่ฉันเห็นมันทำ แต่ฉันไม่สามารถอ้างอิงอะไรในมาตรฐานที่ได้รับคำสั่ง
duffymo

1
คุณอาจสับสนว่า SOAP นั้นได้มาจาก XML-RPC ด้วยแนวคิดที่ว่า SOAP นั้นมีจุดประสงค์เพื่อเป็น RPC อย่างไรก็ตามโปรดทราบว่า WSDL ตั้งแต่เริ่มต้นสามารถอธิบายบริการสไตล์เอกสารได้นอกเหนือจากบริการสไตล์ RPC ถ้า RPC เป็นแรงบันดาลใจดั้งเดิมที่อยู่เบื้องหลัง SOAP และ WSDL แล้วใคร ๆ ก็คาดหวังว่าบริการรูปแบบเอกสารจะหายไปจากมาตรฐานเดิม
จอห์นแซนเดอร์

6

Wikipedia กล่าวว่า "ภาษาคำอธิบายบริการเว็บเป็นภาษาที่ใช้ XML ซึ่งเป็นแบบจำลองสำหรับอธิบายบริการเว็บ" อีกวิธีหนึ่ง WSDL คือเว็บเซอร์วิสเนื่องจาก javadoc เป็นไลบรารี java

อย่างไรก็ตามสิ่งที่น่ารักจริงๆเกี่ยวกับ WSDL คือซอฟต์แวร์นั้นสามารถสร้างไคลเอ็นต์และเซิร์ฟเวอร์โดยใช้ WSDL


4

REST นั้นมีน้ำหนักเบาในแง่ของการเข้ารหัสซึ่งมีประโยชน์มากกว่าสำหรับอุปกรณ์ที่มีน้ำหนักเบาเช่น API ที่ไม่เข้มงวด

REST เป็นรูปแบบอิสระ XML, HTML, JSON มีตัวเลือกให้เลือกทั้งหมด

REST จัดเตรียมความสามารถสำหรับการถ่ายโอนข้อความ 2 จุด (ไม่น่าแปลกใจเนื่องจาก REST ย่อมาจาก REpresentational State Transfer) โดยที่การโต้ตอบ WSDL / SOAP เป็นการโต้ตอบกับข้อความหลายจุด

REST ไม่ต้องการส่วนขยายใหม่สำหรับข้อความ XML โดยที่ใน WSDL / SOAP เป็นกรณีนี้

WSDL / SOAP ใช้โปรโตคอลการส่งผ่านหลายโปรโตคอล REST พึ่งพา HTTP เท่านั้น ดังนั้น WSDL / SOAP จึงสามารถใช้งานได้เหมือนวิธี RESTful อย่างไรก็ตามการร้องขอที่เรียบง่ายอาจมีความซับซ้อน / หนักเกินไป

การเปรียบเทียบง่ายๆ: REST เปรียบเสมือน motoboy ให้อาหารของคุณง่ายและรวดเร็ว XML ขยาย WSDL / SOAP มากขึ้นเช่นการส่งมอบ UPS สิ่งที่มีโครงสร้างและจริงจังมากขึ้น แต่มาพร้อมกับค่าใช้จ่าย



0

เอกสาร WSDL อธิบาย webservice มันระบุตำแหน่งของบริการและวิธีการของการบริการโดยใช้องค์ประกอบที่สำคัญเหล่านี้: ชนิดข้อมูลที่ใช้ในองค์ประกอบข้อมูลเว็บเซอร์สำหรับการดำเนินงานแต่ละครั้งอธิบายการดำเนินงานที่สามารถทำได้และข้อความ envolved

SOAP (Simple Object Access Protocol) เป็นโปรโตคอลการส่งข้อความที่อนุญาตให้โปรแกรมที่ทำงานบนระบบปฏิบัติการที่แตกต่างในการสื่อสารโดยใช้ http และ xml

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.