URL เรียกกลับที่สัมพันธ์กับ API คืออะไร?


109

ฉันระบาดไปทั่วเน็ตและดูเหมือนจะคิดเรื่อง URL เรียกกลับไม่ได้ ในกรณีของฉันฉันมี URL เรียกกลับสองสามรายการที่ฉันต้องกำหนดเอง ที่นิยมคือ "URL เรียกกลับเริ่มต้น" นี่มันอะไรกันแน่? คุณสามารถยกตัวอย่างเป็นภาษาอังกฤษธรรมดาได้หรือไม่?

คำตอบ:


73

URL เรียกกลับจะถูกเรียกใช้โดยวิธี API ที่คุณเรียกใช้หลังจากเสร็จสิ้น ดังนั้นหากคุณโทร

POST /api.example.com/foo?callbackURL=http://my.server.com/bar

จากนั้นเมื่อเสร็จแล้วก็จะส่งคำขอไปยัง/foo http://my.server.com/barเนื้อหาและวิธีการของคำขอนั้นจะแตกต่างกันไปโปรดตรวจสอบเอกสารสำหรับ API ที่คุณกำลังเข้าถึง


1
จะทำให้เกิดข้อผิดพลาดหรือไม่หากตั้งค่า URL เรียกกลับไม่ถูกต้อง
user3768495

@ user3768495 ฉันคาดว่ามันจะไม่เป็นเช่นนั้น แต่จะขึ้นอยู่กับการใช้งาน API ตามทฤษฎีแล้วสามารถสร้างส่วนเรียกกลับของธุรกรรมภายในและย้อนกลับการเปลี่ยนแปลงใด ๆ ที่ทำโดยคำขอเดิมหากการติดต่อกลับไม่ส่งคืนการตอบกลับ 2xx
Eric Stein

ฉันต้องตอบกลับคำขอ POST ที่ /api.example.com/foo หรือไม่
Abhijeet

@Abhijeet คุณไม่จำเป็นต้องทำ หากเหมาะสมที่จะรวมคำตอบไว้ใช่ให้ทำเช่นนั้น
Eric Stein

ในหมายเหตุแยกกันพวกคุณคิดว่าเราควรเก็บ URL โทรกลับไว้ที่ฝั่งไคลเอ็นต์หรือฝั่งเซิร์ฟเวอร์ที่ไหน
Khatri

38

คิดว่าเป็นจดหมาย บางครั้งคุณได้รับจดหมายบอกว่าขอให้คุณกรอกแบบฟอร์มจากนั้นส่งแบบฟอร์มกลับมาในซองจดหมายที่จ่าหน้าซองซึ่งอยู่ในซองจดหมายเดิมที่มีแบบฟอร์ม

เมื่อกรอกแบบฟอร์มเสร็จแล้วให้ใส่ลงในซองส่งคืนที่ให้มาแล้วส่งกลับ

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

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


15

หากคุณใช้ URL เรียกกลับ API จะเชื่อมต่อกับ URL เรียกกลับและส่งหรือรับข้อมูลบางอย่างได้ นั่นหมายความว่า API สามารถเชื่อมต่อกับคุณได้ในภายหลัง (หลังจากเรียก API)

ตัวอย่าง

แผนภาพ

  1. คุณส่งข้อมูลโดยใช้คำขอไปยังAPI
  2. APIส่งข้อมูลโดยใช้คำขอที่สองถึงคุณ

คำจำกัดความที่แน่นอนควรอยู่ในเอกสารประกอบ API


5

เป็นกลไกในการเรียกใช้ API ในลักษณะที่ไม่ตรงกัน ลำดับมีดังต่อไปนี้

  1. แอปของคุณเรียกใช้ url โดยส่งผ่านเป็นพารามิเตอร์ของ callback url
  2. api ตอบสนองด้วยรหัส http 20x (201 ฉันเดา แต่อ้างถึงเอกสาร api)
  3. API ทำงานตามคำขอของคุณในช่วงเวลาหนึ่ง
  4. api เรียกใช้แอปของคุณเพื่อแสดงผลลัพธ์ตามที่อยู่ url เรียกกลับ

ดังนั้นคุณสามารถเรียกใช้ API และแจ้งผู้ใช้ของคุณว่าคำขอ "กำลังประมวลผล" หรือ "ได้รับ" จากนั้นอัปเดตสถานะเมื่อคุณได้รับการตอบกลับจาก API

หวังว่ามันจะสมเหตุสมผล - ก


3

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


2

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

โดยปกติหลังจากรหัสผู้ใช้ปลายทางในรหัสผ่านชื่อผู้ใช้ผู้ให้บริการระบุตัวตนจะเรียกเบราว์เซอร์เปลี่ยนเส้นทางไปยัง URL "โทรกลับ" ของคุณด้วยรหัสการตรวจสอบสิทธิ์ชั่วคราวเช่น

https://example.com/callback?code=AUTHORIZATION_CODE

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

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