Apa yang dimaksud dengan URL panggilan balik dalam kaitannya dengan API?

98

Saya telah menjelajahi internet, dan sepertinya tidak bisa memahami gagasan tentang URL panggilan balik. Dalam kasus saya, saya memiliki beberapa URL panggilan balik yang harus saya tentukan sendiri. Yang populer adalah "URL panggilan balik default". Apa ini sebenarnya? Bisakah Anda memberi contoh dalam bahasa Inggris yang sederhana?

ApathyBear
sumber

Jawaban:

67

URL panggilan balik akan dipanggil oleh metode API yang Anda panggil setelah selesai. Jadi jika Anda menelepon

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

Kemudian setelah /fooselesai, ia mengirimkan permintaan ke http://my.server.com/bar. Konten dan metode permintaan itu akan bervariasi - periksa dokumentasi untuk API yang Anda akses.

Eric Stein
sumber
1
Apakah ini akan menyebabkan kesalahan jika URL panggilan balik tidak disetel dengan benar?
pengguna3768495
@ user3768495 Saya tidak mengharapkannya, tapi itu akan tergantung pada implementasi API. Secara teori, ia dapat membuat callback sebagai bagian dari transaksi secara internal, dan mengembalikan setiap perubahan yang dibuat oleh permintaan asli jika callback tidak mengembalikan respons 2xx.
Eric Stein
Apakah saya perlu mengirim tanggapan untuk permintaan POST di /api.example.com/foo?
Abhijeet
@Abhijeet Anda tidak perlu melakukannya. Jika pantas untuk menyertakan tanggapan, ya, lakukanlah.
Eric Stein
Pada catatan terpisah, menurut Anda di mana kita harus menyimpan url panggilan balik, di sisi klien atau sisi server?
Khatri
29

Anggap saja sebagai surat. Kadang-kadang Anda mendapatkan surat, katakanlah meminta Anda untuk mengisi formulir kemudian mengembalikan formulir tersebut ke dalam amplop yang telah diberi alamat sebelumnya yang ada di dalam amplop asli yang menampung formulir tersebut.

Setelah Anda selesai mengisi formulir, Anda memasukkannya ke dalam amplop pengembalian yang disediakan dan mengirimkannya kembali.

CallbackUrl seperti amplop pengembalian itu. Pada dasarnya Anda mengatakan saya mengirimkan data ini kepada Anda. Setelah Anda selesai dengan itu, saya di callbackUrl ini menunggu tanggapan Anda. Jadi API akan memproses data yang telah Anda kirim kemudian melihat callback untuk mengirimi Anda respons.

Ini berguna karena terkadang Anda membutuhkan waktu lama untuk memproses beberapa data dan tidak masuk akal jika penelepon menunggu jawaban. Misalnya, API Anda memungkinkan pengguna mengirim dokumen ke sana dan memindai virus. Kemudian Anda mengirim laporan setelahnya. Pemindaian bisa memakan waktu sekitar 3 menit. Pengguna tidak bisa menunggu selama 3 menit. Jadi, Anda mengakui bahwa Anda telah mendapatkan dokumen dan membiarkan penelepon melanjutkan urusan lain saat Anda melakukan pemindaian, lalu gunakan callbackUrl setelah selesai untuk memberi tahu mereka hasil pemindaian.

Taf Munyurwa
sumber
13

Jika Anda menggunakan URL panggilan balik, maka API dapat terhubung ke URL panggilan balik dan mengirim atau menerima beberapa data. Artinya, API dapat terhubung dengan Anda nanti (setelah panggilan API).

Contoh

Diagram

  1. ANDA mengirim data menggunakan permintaan ke API
  2. API mengirimkan data menggunakan permintaan kedua kepada ANDA

Definisi yang tepat harus ada dalam dokumentasi API.

jiwopene
sumber
5

Ini adalah mekanisme untuk memanggil API dengan cara yang tidak sinkron. Urutannya adalah sebagai berikut

  1. aplikasi Anda memanggil url, meneruskan sebagai parameter url panggilan balik
  2. api merespons dengan kode http 20x (saya kira 201, tapi lihat dokumen api)
  3. api bekerja atas permintaan Anda untuk jangka waktu tertentu
  4. api memanggil aplikasi Anda untuk memberikan hasil, di alamat url panggilan balik.

Jadi, Anda dapat menjalankan api dan memberi tahu pengguna bahwa permintaan tersebut "sedang diproses" atau "diperoleh" misalnya, lalu memperbarui status saat Anda menerima respons dari api tersebut.

Semoga masuk akal. -G

Giuseppe B
sumber
2

Kasus penggunaan lain bisa seperti OAuth, mungkin tidak dipanggil oleh API secara langsung, sebagai gantinya URL panggilan balik akan dipanggil oleh browser setelah menyelesaikan autentikasi dengan penyedia identitas.

Biasanya setelah pengguna akhir memasukkan sandi nama pengguna, penyedia layanan identitas akan memicu pengalihan browser ke url "panggilan balik" Anda dengan kode otorisasi sementara, mis.

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

Kemudian aplikasi Anda dapat menggunakan kode otorisasi ini untuk meminta token akses dengan penyedia identitas yang memiliki masa pakai lebih lama.

Hainan Zhao
sumber
0

Saya akan membuat ini sangat sederhana untuk Anda. Ketika sebuah transaksi dimulai, ia akan menjalani tahap pemrosesan hingga mencapai tahap terminal. Setelah mencapai tahap terminal, status transaksi diposting oleh gateway pembayaran ke url panggilan balik yang umumnya digunakan pedagang sebagai referensi untuk menampilkan halaman berhasil / gagal kepada pengguna. Semoga ini membantu?

Swagat sahoo
sumber