อะไรคือความแตกต่างระหว่าง 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.