อะไรคือความแตกต่างระหว่าง Web API และบริการบนเว็บ?


140

Web APIและบริการเว็บมีความแตกต่างกันอย่างไร หรือพวกเขาเป็นหนึ่งเดียวกัน?




3
API คืออินเทอร์เฟซที่เผยแพร่ในขณะที่บริการคือการใช้งานที่ทำงานในแบ็กเอนด์
— Rasika Perera

1
โปรดอ่านคำตอบด้วยความระมัดระวัง บางคนอาจล้าสมัยหรือไม่ถูกต้อง
— Menuka Ishan

เพียงแค่เพิ่มคำอธิบายที่ยอดเยี่ยมอีกหนึ่งคำ - quora.com/What-is-the-difference-between-web-services-and-API
— Ashish Shetkar

คำตอบ:


73

โดยทั่วไปบริการบนเว็บจะเสนอWSDLซึ่งคุณสามารถสร้างไคลเอนต์สตับได้โดยอัตโนมัติ Web Services จะขึ้นอยู่กับโปรโตคอล SOAP เว็บ ASP.NET API เป็นกรอบใหม่ไมโครซอฟท์ซึ่งจะช่วยให้คุณสามารถสร้างการเชื่อมต่อส่วนที่เหลือตาม การตอบสนองอาจเป็น JSON หรือ XML แต่ไม่มีวิธีสร้างไคลเอ็นต์โดยอัตโนมัติเนื่องจาก Web API ไม่มีคำอธิบายบริการเช่น WSDL จาก Web Services ดังนั้นจึงขึ้นอยู่กับความต้องการของคุณว่าคุณต้องการใช้เทคนิคใด บางทีWCFอาจจะเหมาะกับความต้องการของคุณมากกว่าเพียงแค่ดูเอกสาร MSDN


9
บริการเว็บไม่จำเป็นต้องขึ้นอยู่กับโปรโตคอล SOAP
— horcrux

4
คำตอบที่ล้าสมัยในทางเทคนิค
— Arun Raaj

5
"ASP.NET Web API" เป็นกรอบงานของ Microsoft ไม่ใช่ "Web API"
— Arad

คำตอบที่ล้าสมัยไปที่ลิงค์นี้microsoft-techies.blogspot.com/2014/03/…
— Ganesh Karewad

42

ความแตกต่างพื้นฐานระหว่าง Web Services และ Web API

บริการเว็บ:

1) เป็นบริการที่ใช้ SOAP และส่งคืนข้อมูลเป็น XML

2) รองรับโปรโตคอล HTTP เท่านั้น

3) ไม่ใช่โอเพ่นซอร์ส แต่สามารถใช้ได้กับไคลเอนต์ที่เข้าใจ XML

5) ต้องใช้โปรโตคอล SOAP เพื่อรับและส่งข้อมูลผ่านเครือข่ายดังนั้นจึงไม่ใช่สถาปัตยกรรมที่มีน้ำหนักเบา

Web API:

1) Web API เป็นบริการที่ใช้ HTTP และส่งคืนข้อมูล JSON หรือ XML ตามค่าเริ่มต้น

2) รองรับโปรโตคอล HTTP

3) สามารถโฮสต์ภายในแอปพลิเคชันหรือ IIS

4) เป็นโอเพ่นซอร์สและสามารถใช้ได้กับไคลเอนต์ที่เข้าใจ JSON หรือ XML

5) มีสถาปัตยกรรมน้ำหนักเบาและเหมาะสำหรับอุปกรณ์ที่มีแบนด์วิดท์ จำกัด เช่นอุปกรณ์เคลื่อนที่


8
บริการเว็บสามารถโฮสต์ได้หลายแห่งไม่เพียง แต่ IIS เท่านั้น
— Ignacio Soler Garcia

4
จวนทุกจุดผิด ฉันไม่เข้าใจว่าผู้ใช้ 40 คนสามารถโหวตเพิ่มได้อย่างไร
— horcrux

1
@horcrux ฉันเห็นด้วย บริการบนเว็บไม่จำเป็นต้องใช้บริการที่ใช้ SOAP
— Ryan Shillington

คำตอบที่สับสนที่สุดที่ฉันเคยเห็น
— mhrsalehi

24

API เทียบกับบริการบนเว็บ

เพิ่งวางข้อมูลสรุปของบทความที่เชื่อมโยง:

สรุป:

  1. บริการเว็บทั้งหมดเป็น API แต่ API ทั้งหมดไม่ใช่บริการบนเว็บ

  2. บริการเว็บอาจไม่ดำเนินการทั้งหมดที่ API จะดำเนินการ

  3. บริการบนเว็บใช้รูปแบบการใช้งานเพียงสามรูปแบบ: SOAP, REST และ XML-RPC สำหรับการสื่อสารในขณะที่ API อาจใช้รูปแบบใดก็ได้สำหรับการสื่อสาร

  4. บริการบนเว็บจำเป็นต้องมีเครือข่ายสำหรับการทำงานเสมอในขณะที่ API ไม่จำเป็นต้องมีเครือข่ายสำหรับการทำงาน

  5. API ช่วยอำนวยความสะดวกในการเชื่อมต่อโดยตรงกับแอปพลิเคชันในขณะที่บริการบนเว็บคือ ...

อ่านเพิ่มเติม: ความแตกต่างระหว่าง API และบริการเว็บ | ความแตกต่างระหว่าง | API เทียบกับบริการเว็บhttp://www.differencebetween.net/technology/internet/difference-between-api-and-web-service/#ixzz3e3WxplAv

ดูลิงก์ด้านบนเพื่อดูคำตอบที่สมบูรณ์


10
แต่คำถามคือความแตกต่างระหว่าง WebAPI และ WebService ไม่ใช่ "API"
— Kulbhushan Singh

นอกจากนี้ประเด็นที่ 3 ไม่ถูกต้อง มันทำให้เข้าใจผิดและช่วยสร้างความสับสนเกี่ยวกับหัวข้อ "SOAP เทียบกับ REST"
— horcrux

10

ดูรายละเอียดเพิ่มเติมได้ที่ลิงค์นี้ แผนภาพ


2
ทำไม? จากภาพนี้ดูเหมือนว่าบริการเว็บ SOAP ไม่สามารถใช้กับสมาร์ทโฟนได้ ... หรือแม้แต่บนเดสก์ท็อป? จริงๆ? มีคนบังคับให้คุณอ่าน JSON แทน XML บนแพลตฟอร์มเหล่านั้นหรือไม่?
— AndreaCi

ถ้าอ่าน xml ไม่ได้หมายความว่า SOAP base service REST ยังรองรับ Command Separated Value (CSV), JavaScript Object Notation (JSON) และ Really Simple Syndication (RSS)
— Adiii

7

บริการเว็บหากคุณต้องการคือ Web API โดยเฉพาะ Web API มักหมายถึงบริการเว็บ RESTful (ที่ใช้ HTTP) และ Web Service มักหมายถึง SOAP + WSDL (+ HTTP หรือ SMTP หรือ JMS .. )

บริการเว็บ RESTful แบบ Tipically ตรงข้ามกับ Web Services (WSDL, SOAP) แต่เมื่อไม่นานมานี้มีการเปิดตัวคำว่า RESTful Web services (ตัวพิมพ์ใหญ่ 'W') ซึ่งหมายถึง RESTful + WSDL + SOAP ..

ตรวจสอบความแตกต่างของแนวคิดทั้งสามในแผนภูมินี้: http://www2.mokabyte.it/cms/figureproviderservlet?figureId=IUS-6NS-OBV_7f000001_19624184_5621ef4e--Fig02.jpg

หวังว่าจะช่วยได้!


4

บริการบนเว็บนั้นเหมือนกับ Web API - มีข้อ จำกัด อีกเล็กน้อยในแง่ของรูปแบบข้อมูลพื้นฐาน ทั้งสองใช้โปรโตคอล HTTP และทั้งสองอนุญาตให้สร้างบริการ RESTful และอย่าลืมโปรโตคอลอื่น ๆ เช่น JSON-RPC - บางทีมันอาจจะเหมาะสมกว่า


1
ไม่ "เหมือนเดิมอย่างแน่นอน" ถ้าตอนนี้มีข้อ จำกัด หรือไม่
— Ojonugwa Jude Ochalifu

0

ในบริบทของ ASP.Net Web API คือคอนโทรลเลอร์ที่มีคลาสพื้นฐานคือApiControllerและไม่ใช้ Views Web Service เป็นคลาสที่มาจากWebServiceและมีการสร้าง WSDL โดยอัตโนมัติ โดยค่าเริ่มต้นมันเป็น API SOAP แต่คุณยังสามารถใช้ JSON โดยการเพิ่มScriptServiceAttribute


0

API และบริการบนเว็บทำหน้าที่เป็นช่องทางในการสื่อสาร

ข้อแตกต่างเพียงอย่างเดียวคือบริการบนเว็บอำนวยความสะดวกในการโต้ตอบระหว่างเครื่องสองเครื่องผ่านเครือข่าย API ทำหน้าที่เป็นอินเทอร์เฟซระหว่างสองแอปพลิเคชันที่แตกต่างกันเพื่อให้สามารถสื่อสารกันได้ API เป็นวิธีการที่ผู้จำหน่ายบุคคลภายนอกสามารถเขียนโปรแกรมที่ติดต่อกับโปรแกรมอื่นได้อย่างง่ายดาย บริการบนเว็บได้รับการออกแบบให้มีอินเทอร์เฟซที่แสดงในรูปแบบที่เครื่องประมวลผลได้โดยปกติจะระบุไว้ใน Web Service Description Language (WSDL)

บริการเว็บทั้งหมดเป็น API แต่ไม่ใช่ API ทั้งหมดที่เป็นบริการบนเว็บ

บริการบนเว็บเป็นเพียง API ที่รวมอยู่ใน HTTP


นี้ที่นี่บทความให้ความรู้ที่ดีเกี่ยวกับการบริการเว็บและ API


-2

TMK อาจจะถูกต้องในโลกของ Microsoft แต่ในโลกของซอฟต์แวร์ทั้งหมดรวมถึง Java / Python / etc ฉันเชื่อว่าไม่มีความแตกต่าง พวกมันเหมือนกัน


-2

ความแตกต่างระหว่าง Web Service และ Web API อธิบายไว้อย่างชัดเจนที่นี่:

/software/38691/difference-between-web-api-and-web-service

ข้อความจากลิงค์:

บริการบนเว็บ - เป็นมาตรฐานที่กำหนดโดย W3C ดังนั้นจึงสามารถเข้าถึงได้แบบกึ่งอัตโนมัติหรือโดยอัตโนมัติ (WSDL / UDDI) ทั้งหมดนี้ขึ้นอยู่กับ XML ดังนั้นใคร ๆ ก็สามารถเรียกมันได้ และทุกแง่มุมของบริการได้รับการกำหนดไว้เป็นอย่างดี มีมาตรฐานคำอธิบายพารามิเตอร์มาตรฐานการส่งผ่านพารามิเตอร์มาตรฐานการตอบสนองมาตรฐานการค้นพบ ฯลฯ ฯลฯ คุณสามารถเขียนหนังสือได้ 2,000 หน้าซึ่งจะอธิบายถึงมาตรฐาน ยังมีมาตรฐาน "เพิ่มเติม" บางอย่างสำหรับการทำ "มาตรฐาน" เช่นการพิสูจน์ตัวตน

แม้ว่าความจริงแล้วการเรียกใช้และการค้นพบโดยอัตโนมัติแทบจะไม่ได้ผลเนื่องจากลูกค้าค่อนข้างแย่และคุณไม่มีการรับประกันอย่างแท้จริงว่าสามารถเรียกใช้บริการใด ๆ จากลูกค้ารายใดก็ได้

โดยทั่วไป Web API จะทำในรูปแบบ HTTP / REST โดยไม่มีการกำหนดเอาท์พุทเช่น JSON / XML อินพุตอาจเป็น XML / JSON / หรือข้อมูลธรรมดา ไม่มีมาตรฐานสำหรับสิ่งใด ๆ => ไม่มีการโทรอัตโนมัติและการค้นพบ คุณสามารถให้คำอธิบายบางอย่างในไฟล์ข้อความหรือ PDF คุณสามารถส่งคืนข้อมูลใน Windows-1250 แทน Unicode เป็นต้นสำหรับการอธิบายมาตรฐานจะเป็นโบรชัวร์ 2 หน้าพร้อมข้อมูลง่ายๆและคุณจะกำหนดทุกอย่างอื่น

เว็บกำลังเปลี่ยนไปใช้ Web API / REST Web Services ไม่ได้ดีไปกว่า Web API จริงๆ ซับซ้อนมากในการพัฒนาและกินทรัพยากรมากขึ้น (แบนด์วิดท์และ RAM) ... และเนื่องจากการแปลงข้อมูลทั้งหมด (REQUEST-> XML-> DATA-> RESPONSE-> XML-> VALIDATION-> CONVERSION-> DATA) เป็นอย่างมาก ช้า.

เช่น. ใน WebAPI คุณสามารถแพ็คข้อมูลส่งบีบอัดและยกเลิกการบีบอัด + ยกเลิกการแพ็คบนไคลเอนต์ ใน SOAP คุณสามารถบีบอัดคำขอ HTML เท่านั้น


-2

WebServices ทั้งหมดเป็น API แต่ API ทั้งหมดไม่ใช่ WebServices API ที่เปิดเผยบนเว็บเรียกว่าบริการเว็บ


Web Service เป็นมาตรฐานที่กำหนดโดย W3C ซึ่งเป็นบริการเอกสารที่ดีสำหรับซอฟต์แวร์ของบุคคลที่สามเพื่อโต้ตอบผ่าน XML (WSDL / UDDI) Web API คือ API บน HTTP ซึ่งไม่ได้รับการจัดทำเป็นเอกสารอย่างดีมีมาตรฐานของตัวเอง และ API โดยทั่วไปเป็นสิ่งที่สามารถหรือไม่สามารถเข้าถึงอินเทอร์เน็ตเพื่อพูดคุยกับแอปพลิเคชันอื่น ๆ และสามารถมีโปรโตคอลอื่น ๆ ได้เช่น API สำหรับการเรียกระบบเพื่อพูดคุยเทอร์มินัล / cmd ของคุณใน OS
— Imam Bux

-3

สองสิ่งที่เข้าใจง่ายมาก

  1. API: เป็นเลเยอร์บนแอปพลิเคชันที่สามารถตอบสนองคำขอแอปพลิเคชันอื่น ๆ ในเครื่องได้
  2. บริการเว็บไซต์: เป็น API ที่สามารถตอบสนองคำขอและตอบสนองผ่านระบบเครือข่ายระยะไกลผ่านเว็บหรืออินเทอร์เน็ต

หมายเหตุ: บริการเว็บทั้งหมดเป็นของ API แต่ไม่ใช่ API ทั้งหมดที่เป็นบริการบนเว็บ


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