Bir API ile ilgili olarak geri arama URL'si nedir?


105

Ağı tarıyordum ve bir geri arama URL'si fikrine kafamı dolduramıyorum. Benim durumumda, kendim tanımlamam gereken birkaç geri arama URL'm var. Popüler olanı "varsayılan geri arama URL'si" dir. Bu tam olarak nedir? Sade bir İngilizce örnek verebilir misiniz?

Yanıtlar:


71

Bir geri arama URL'si, tamamlandıktan sonra çağırdığınız API yöntemi tarafından çağrılacaktır. Yani ararsan

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

Sonra /foobittiğinde, bir istek gönderir http://my.server.com/bar. Bu isteğin içeriği ve yöntemi değişiklik gösterecektir - erişmekte olduğunuz API'nin belgelerine bakın.


1
Geri arama URL'sinin doğru ayarlanmaması bir hataya neden olur mu?
user3768495

@ user3768495 Bunun olmasını beklerdim, ancak bu API'nin uygulanmasına bağlı olacak. Teorik olarak, bir işlemin geri arama kısmını dahili olarak yapabilir ve geri arama bir 2xx yanıtı döndürmezse, orijinal istek tarafından yapılan değişiklikleri geri alabilir.
Eric Stein

/Api.example.com/foo adresindeki POST isteğine yanıt göndermem gerekiyor mu?
Abhijeet

@Abhijeet Asla gerek yok. Bir yanıt eklemek uygunsa, evet, öyle yapın.
Eric Stein

Ayrı bir not olarak, geri arama url'sini istemci tarafında veya sunucu tarafında nerede tutmamız gerektiğini düşünüyorsunuz?
Khatri

34

Bunu bir mektup olarak düşünün. Bazen bir mektup alırsınız, örneğin bir formu doldurmanızı isteyen bir mektup alırsınız ve ardından formu, formu barındıran orijinal zarfın içinde önceden adreslenmiş bir zarf içinde iade edin.

Formu doldurmayı bitirdikten sonra, verilen iade zarfına koyup geri gönderirsiniz.

CallbackUrl, bu dönüş zarfı gibidir. Temelde size bu verileri gönderiyorum diyorsunuz. Bununla işiniz bittiğinde, bu callbackUrl'de yanıtınızı bekliyorum. Dolayısıyla API, gönderdiğiniz verileri işleyecek ve ardından size yanıtı göndermek için geri aramayı inceleyecektir.

Bu yararlıdır çünkü bazen bazı verileri işlemeniz uzun sürebilir ve arayanın bir yanıt beklemesinin bir anlamı yoktur. Örneğin, API'nizin kullanıcıların belgeleri göndermesine ve bunları virüs taramasına izin verdiğini varsayalım. Sonra bir rapor gönderirsiniz. Tarama belki 3 dakika sürebilir. Kullanıcı 3 dakika bekleyemez. Böylece, belgeyi aldığınızı ve siz taramayı yaparken arayanın diğer işlere devam etmesine izin verdiğinizi kabul edersiniz, ardından işiniz bittiğinde callbackUrl'yi kullanarak taramanın sonucunu onlara söyleyin.


14

Geri arama URL'sini kullanırsanız, API geri arama URL'sine bağlanabilir ve bazı veriler gönderip alabilir. Bu, API'nin size daha sonra (API çağrısından sonra) bağlanabileceği anlamına gelir.

Misal

Diyagram

  1. SİZ isteği kullanarak veri göndermek API
  2. API , ikinci isteği kullanarak SİZE veri gönderir

Tam tanım, API belgelerinde olmalıdır.


5

Bir API'yi eşzamansız bir şekilde çağırmak için bir mekanizmadır. Sıra aşağıdaki gibidir

  1. uygulamanız geri arama url'sini parametre olarak ileterek url'yi çağırır
  2. api, 20x http koduyla yanıt verir (sanırım 201, ancak api belgelerine bakın)
  3. API, isteğiniz üzerinde belirli bir süre çalışır
  4. api, geri arama url adresinde size sonuçları vermek için uygulamanızı çağırır.

Böylece, api'yi çağırabilir ve kullanıcınıza örneğin "işlendiğini" veya "alındığını" söyleyebilirsiniz ve ardından api'den yanıt aldığınızda durumu güncelleyebilirsiniz.

Umarım mantıklıdır. -G


2

Başka bir kullanım durumu, OAuth gibi bir şey olabilir, doğrudan API tarafından çağrılmayabilir, bunun yerine geri arama URL'si kimlik sağlayıcıyla kimlik doğrulaması tamamlandıktan sonra tarayıcı tarafından çağrılacaktır.

Normalde kullanıcı adı şifresindeki son kullanıcı anahtarından sonra, kimlik hizmeti sağlayıcısı geçici yetkilendirme kodu ile "geri arama" url'nize bir tarayıcı yeniden yönlendirmesini tetikleyecektir, örn.

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

Daha sonra uygulamanız bu yetkilendirme kodunu, çok daha uzun ömürlü olan kimlik sağlayıcıyla bir erişim belirteci istemek için kullanabilir.


2

Bunu sizin için oldukça basitleştireceğim. Bir işlem başlatıldığında terminal aşamasına gelene kadar işlem aşamasına geçer. Son aşamaya ulaştığında, işlem durumu ödeme ağ geçidi tarafından genellikle satıcıların başarı / başarısızlık sayfasını kullanıcıya göstermek için bir referans olarak kullandığı geri arama url'sine gönderilir. Bu yardımcı olur umarım?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.