ความแตกต่างระหว่าง webhook และ API คืออะไร


15

โปรแกรมเมอร์ที่ทำการร้องขอไปยังAPIจะได้รับการตอบกลับ ตัวอย่างเช่นการใช้ Web API เพื่อส่งอีเมลคุณจะต้องส่งเนื้อหาอีเมลพร้อมกับคำขอ หากทุกอย่างเป็นไปด้วยดีคุณจะได้รับการตอบรับประกาศความสำเร็จ

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

ดังนั้นโดยพื้นฐานแล้วพวกเขากำลังทำสิ่งเดียวกัน

คำถามของฉันคือสิ่งนี้: อะไรคือความแตกต่างระหว่าง webhook และ api?

ไม่ได้อยู่ในเงื่อนไข WEBHOOK IS ____ และ API IS ______

ฉันรู้ว่าพวกเขาคืออะไร ฉันสนใจในความแตกต่างที่สำคัญและเวลาที่จะใช้และเมื่อใช้อีก

คำตอบ:


15

ความแตกต่างแรกและหลักระหว่างพวกเขาคือกับ APIs ส่วนใหญ่มีคำขอตามด้วยการตอบสนอง ไม่จำเป็นต้องขอ webhook แต่จะส่งข้อมูลเมื่อพร้อมใช้งาน

ดูง่าย ๆ :

API เป็นส่วนต่อประสานกับข้อมูลของคุณบน example.com API ถูกใช้จากเซิร์ฟเวอร์ของคุณไปยังแพลตฟอร์ม example.com และสามารถใช้ในรายการสร้างแก้ไขหรือลบรายการ

Webhooks เป็นการโทรอัตโนมัติจาก example.com ไปยังเซิร์ฟเวอร์ของคุณที่ถูกเรียกเมื่อมีเหตุการณ์เฉพาะเกิดขึ้นใน example.com ตัวอย่างเช่นเมื่องานเสร็จสมบูรณ์และคุณต้องการทราบเกี่ยวกับมันแบบเรียลไทม์เราจะส่งคำขอ POST ไปยัง URL ที่คุณได้ลงทะเบียนสำหรับ webhook EVENT.COMPLETED ในบัญชีตัวอย่างของคุณ

โดยสรุป: API เป็นที่ที่คุณบอกสิ่ง example.com และ Webhooks คือที่ example.com บอกคุณสิ่งต่างๆ

มองลึกมากขึ้น:

SaaS เป็นแนวคิด - แนวคิดของซอฟต์แวร์ที่มีอยู่ในระบบคลาวด์และไคลเอนต์มักเป็นเบราว์เซอร์ แอปพลิเคชัน SaaS ถูกกำหนดโดยฟังก์ชั่นที่ผู้ใช้สามารถใช้ได้ (ตัวอย่างเช่น Salesforce มีฐานข้อมูลที่สามารถใช้ในการจัดเก็บข้อมูลลูกค้า) ฟังก์ชันที่มีอยู่จะถูกกำหนดโดยวัตถุประสงค์ของแอปพลิเคชัน (เช่น CRM, Email Blaster, CMS ฯลฯ )

API เป็นวิธีสำหรับแอปพลิเคชัน SaaS ที่จะเชื่อมต่อกับแอปพลิเคชันอื่น ๆ ผ่านวิธีการสื่อสารทั่วไป (ReST, SOAP, JSON, ฯลฯ ) API ไม่สามารถพูดกับ API อื่นได้โดยตรง API สามารถใช้งานได้โดยแอปพลิเคชั่นที่เข้ารหัสหรือมิดเดิลแวร์ที่ทำหน้าที่เป็นสะพานเชื่อมระหว่าง API ทั้งสองและรันเธรดการดำเนินการ ตัวอย่างเช่น - ทั้ง NetSuite และ Salesforce มี SOAP API แต่สำหรับพวกเขาในการสื่อสาร - คุณต้องการใช้ซอฟต์แวร์มิดเดิลแวร์ที่สามารถโต้ตอบกับทั้งสองระบบและกำหนดค่าให้ดึงเร็กคอร์ดผู้ติดต่อใหม่ผ่าน API ของ Salesforce และผลักดันเร็กคอร์ดใหม่ไปยัง NetSuite เป็น API ทุกชั่วโมง

Webhooks เป็นโปรโตคอลการสื่อสารอื่นสำหรับแอปพลิเคชัน SaaS ที่ช่วยให้การสื่อสารระหว่างแอปพลิเคชัน แต่เพียงใช้ HTTP POSTS เพื่อควบคุมเธรดการดำเนินการ Webhooks อนุญาตให้แอปพลิเคชั่นพูดคุยกันโดยตรงโดยไม่ต้องใช้มิดเดิลแวร์ ตัวอย่างเช่น - เมื่อคุณส่งแบบฟอร์มไปที่ WuFoo คุณสามารถตั้งค่าเพื่อเริ่มต้น HTTP POST แบบ webhooks ไปยังบริการอื่นและส่งผ่านค่าฟิลด์บางค่าจากการส่งแบบฟอร์ม สามารถใช้ Webhooks ร่วมกับ API ได้ตัวอย่างเช่นหลังจากที่ webhook แจ้งให้แอปพลิเคชันอื่นทราบว่าเกิดอะไรขึ้นกับการบันทึก id X แอปพลิเคชันนั้นสามารถใช้ API เพื่อสื่อสารกับบริการเพื่อตรวจสอบค่าฟิลด์ใหม่หรือแก้ไขสถานะ บันทึก.

เป็นการยากที่จะมี API หรือ webhooks โดยไม่มีแอปพลิเคชัน SaaS อย่างไรก็ตามคุณสามารถมีแอปพลิเคชัน SaaS ที่ไม่ใช้ webhooks หรือ API (สาธารณะ) ได้อย่างง่ายดาย ในทำนองเดียวกันขึ้นอยู่กับฟังก์ชั่นของแอปพลิเคชั่น SaaS ของคุณคุณอาจเลือกใช้ webhooks หรือ API


ขอบคุณ! ฉันเข้าร่วมชุมชนนี้เพียงเพื่อโหวตคำตอบของคุณ (และคำถามแน่นอน!)
Kaushal28

11

APIกำลังทำสิ่งต่าง ๆ เมื่อคุณขอในขณะที่Webhookทำสิ่งนั้นด้วยตัวเองเมื่อตรงกับเกณฑ์ที่กำหนด

โดยสรุป: API คือที่ที่คุณบอกเราและ Webhooks เป็นที่ที่เราบอกคุณ

ผ่านhttp://apidocs.teamwork.com/article/466-whats-the-difference-between-the-api-and-webhooks

เมื่อใดก็ตามที่มีสิ่งใหม่ webhook จะส่งไปที่ URL ของคุณ

ผ่านhttps://sendgrid.com/blog/webhook-vs-api-whats-difference/


5

ฉันจะอธิบายเรื่องนี้ด้วยตัวอย่างที่เป็นรูปธรรม: การชำระเงินด้วยบัตรเครดิต

เมื่อไซต์ของคุณต้องการเรียกเก็บเงินจากบัตรเครดิตคุณเรียกAPIที่ตัวประมวลผลบัตรเครดิตของคุณ ตัวประมวลผลบัตรเครดิตจะเรียกเก็บเงินจากบัตรเครดิตส่งคืนสถานะความสำเร็จหรือความล้มเหลวในการเรียก API นั้น

ตัวประมวลผลบัตรเครดิตอาจต้องการวิธีปรับปรุงเว็บไซต์ของคุณเกี่ยวกับธุรกรรมนี้ในภายหลัง ตัวอย่างเช่นการทำธุรกรรมอาจถูกกลับรายการในสัปดาห์หน้า หน่วยประมวลผลบัตรเครดิตของคุณสามารถส่งอีเมลถึงคุณเกี่ยวกับเรื่องนี้ วิธีการจัดการกับมันก็คือwebhooks คุณบอกตัวประมวลผลบัตรเครดิตของคุณเกี่ยวกับเว็บไซต์ของคุณว่าพวกเขาสามารถเข้าถึงและส่งข้อมูลให้คุณได้ เมื่อกลับรายการธุรกรรมตัวประมวลผลบัตรเครดิตที่สนับสนุนเว็บ hooks จะติดต่อเว็บไซต์ของคุณที่ URL ที่คุณให้และส่งข้อมูลในรูปแบบที่เครื่องอ่านได้ซึ่งคุณสามารถแยกวิเคราะห์และจัดการเว็บแอปพลิเคชันของคุณโดยอัตโนมัติ

webhook เป็นกลไกการติดต่อกลับสำหรับ API โดยทั่วไปคุณใช้ API สำหรับการโทรกลับแบบอะซิงโครนัสร่วมกับ API ที่คุณโทร


"โดยทั่วไปคุณใช้APIสำหรับการโทรกลับแบบอะซิงโครนัส ... " - ไม่ควรเป็น "webhook" ใช่ไหม
MrWhite

1
ฉันพยายามจะบอกว่า webhook เป็น API ที่คุณใช้ คุณเรียก API webhook คือ API ที่คุณใช้เพื่อให้พวกเขาโทรหาคุณ
สตีเฟ่น Ostermiller

2

นี่คือตัวอย่างของความแตกต่างระหว่าง webhook และ API ในเทอมของคนธรรมดา:

สมมติว่าคุณสั่งบางอย่างทางออนไลน์และการส่งมอบจะเป็นวันนี้ แต่คุณกำลังทำงานดังนั้นคุณจึงบอกให้แม่บ้านของคุณได้รับแพ็คเกจทันทีที่มาถึง เป้าหมายคือคุณจะต้องได้รับการแจ้งเตือนหากแพ็คเกจนั้นมาถึงแล้ว นี่คือสิ่งที่เกิดขึ้นใน:

Webhook

  • เมื่อพัสดุมาถึงแม่บ้านของคุณจะโทรหาคุณทันทีเพื่อแจ้งให้คุณทราบว่าพัสดุนั้นมาถึงแล้ว

API

  • แพ็คเกจมาถึงแล้ว แต่คุณยังไม่รู้ จากนั้นคุณโทรหาคุณแม่บ้านเพื่อถามว่ามันมาถึงแล้วหรือยังเธอตอบว่าใช่

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


0

Apiเป็นเพียงโปรแกรมขนาดเล็กที่ใช้ในการเข้าถึงคุณสมบัติบางอย่างหรือข้อมูลในการพัฒนาแพลตฟอร์มใด ๆ จากแพลตฟอร์มที่มีอยู่แล้วตัวอย่างเช่น: คุณต้องการใช้บริการ Google ตำแหน่งทางภูมิศาสตร์ (แพลตฟอร์มที่มีอยู่แล้ว) ในเว็บไซต์ของคุณ (การพัฒนา แพลตฟอร์ม) แทนที่จะสร้างใหม่ทั้งระบบและการตั้งค่าดาวเทียมของคุณเองคุณใช้Apiขนาดเล็กเพื่อเข้าถึงคุณลักษณะนั้นจาก google

ในขณะที่เว็บเบ็ดเป็นเพียง URL ย้อนกลับหรือย้อนกลับไปยังเว็บไซต์หรือแพลตฟอร์มของคุณซึ่งการตอบสนองและข้อมูลที่คุณร้องขอโดยใช้Apiนั้นถูกส่งไปที่นั่นและคุณรวบรวมข้อมูลที่คุณต้องการ

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