Co to jest adres URL wywołania zwrotnego w odniesieniu do interfejsu API?

98

Przeszukuję sieć i nie potrafię zrozumieć idei adresu URL wywołania zwrotnego. W moim przypadku mam kilka adresów URL wywołań zwrotnych, które muszę samodzielnie zdefiniować. Popularnym jest „domyślny URL wywołania zwrotnego”. Co to dokładnie jest? Czy możesz podać przykład w prostym języku angielskim?

ApathyBear
źródło

Odpowiedzi:

67

Adres URL wywołania zwrotnego zostanie wywołany przez wywoływaną metodę API po zakończeniu. Więc jeśli zadzwonisz

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

Następnie po /foozakończeniu wysyła żądanie do http://my.server.com/bar. Treść i metoda tego żądania będą się różnić - sprawdź dokumentację interfejsu API, do którego uzyskujesz dostęp.

Eric Stein
źródło
1
Czy spowodowałoby to błąd, gdyby adres URL wywołania zwrotnego nie został ustawiony prawidłowo?
user3768495
@ user3768495 Spodziewałbym się, że nie, ale będzie to zależeć od implementacji API. Może teoretycznie uczynić callback częścią transakcji wewnętrznie i cofnąć wszelkie zmiany wprowadzone przez pierwotne żądanie, jeśli wywołanie zwrotne nie zwróci odpowiedzi 2xx.
Eric Stein
Czy muszę wysłać odpowiedź na żądanie POST pod adresem /api.example.com/foo?
Abhijeet,
@Abhijeet Nigdy nie musisz . Jeśli stosowne jest dołączenie odpowiedzi, tak, zrób to.
Eric Stein,
Oddzielnie, jak myślicie, gdzie powinniśmy przechowywać adres URL wywołania zwrotnego po stronie klienta lub serwera?
Khatri
29

Potraktuj to jak list. Czasami otrzymujesz list, powiedzmy z prośbą o wypełnienie formularza, a następnie odeślij go w zaadresowanej kopercie, która znajduje się w oryginalnej kopercie, w której znajdował się formularz.

Po wypełnieniu formularza, umieść go w dostarczonej kopercie zwrotnej i odeślij.

CallbackUrl jest jak ta koperta zwrotna. Zasadniczo mówisz, że przesyłam Ci te dane. Gdy skończysz, jestem na tym callbackUrl, czekając na twoją odpowiedź. Zatem interfejs API przetworzy przesłane przez Ciebie dane, a następnie zajrzy do wywołania zwrotnego, aby wysłać odpowiedź.

Jest to przydatne, ponieważ czasami przetwarzanie niektórych danych może zająć dużo czasu i nie ma sensu, aby dzwoniący czekał na odpowiedź. Załóżmy na przykład, że twój interfejs API umożliwia użytkownikom wysyłanie do niego dokumentów i skanowanie ich pod kątem wirusów. Następnie wysyłasz raport po. Skanowanie może zająć może 3 minuty. Użytkownik nie może czekać 3 minuty. Potwierdzasz więc, że dostałeś dokument i pozwalasz dzwoniącemu zająć się innymi sprawami, podczas gdy ty skanujesz, a po zakończeniu użyj callbackUrl, aby przekazać im wynik skanowania.

Taf Munyurwa
źródło
13

Jeśli korzystasz z adresu URL wywołania zwrotnego, interfejs API może połączyć się z adresem URL wywołania zwrotnego i wysyłać lub odbierać niektóre dane. Oznacza to, że API może połączyć się z Tobą później (po wywołaniu API).

Przykład

Diagram

  1. WYSYŁASZ dane za pomocą żądania do API
  2. API wysyła dane za pomocą drugiego żądania do CIEBIE

Dokładna definicja powinna znajdować się w dokumentacji API.

jiwopene
źródło
5

Jest to mechanizm służący do wywoływania interfejsu API w sposób asynchroniczny. Sekwencja jest następująca

  1. Twoja aplikacja wywołuje adres URL, przekazując jako parametr adres URL wywołania zwrotnego
  2. api odpowiada 20-krotnym kodem http (chyba 201, ale odwołuje się do dokumentacji api)
  3. interfejs API działa przez określony czas na żądanie
  4. interfejs API wywołuje aplikację w celu przekazania wyników pod adresem URL wywołania zwrotnego.

Możesz więc wywołać interfejs API i powiedzieć użytkownikowi, że żądanie jest na przykład „przetwarzane” lub „nabyte”, a następnie zaktualizować stan po otrzymaniu odpowiedzi z interfejsu API.

Mam nadzieję, że to ma sens. -SOL

Giuseppe B
źródło
2

Innym przypadkiem użycia może być coś w rodzaju OAuth, może nie być wywoływane bezpośrednio przez interfejs API, zamiast tego przeglądarka wywoła adres URL wywołania zwrotnego po zakończeniu uwierzytelniania u dostawcy tożsamości.

Zwykle po kluczu użytkownika końcowego w haśle nazwy użytkownika, dostawca usług tożsamości uruchamia przekierowanie przeglądarki do adresu URL „wywołania zwrotnego” z tymczasowym kodem autoryzacji, np.

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

Następnie aplikacja mogłaby użyć tego kodu autoryzacji, aby zażądać tokenu dostępu u dostawcy tożsamości, który ma znacznie dłuższy okres istnienia.

Hainan Zhao
źródło
0

Zrobię to dla ciebie całkiem proste. Zainicjowana transakcja przechodzi przez etap przetwarzania, aż do osiągnięcia etapu końcowego. Po osiągnięciu etapu terminala status transakcji jest wysyłany przez bramkę płatniczą do adresu URL wywołania zwrotnego, którego zazwyczaj używają sprzedawcy jako odniesienie, aby pokazać użytkownikowi stronę sukcesu / niepowodzenia. Mam nadzieję że to pomoże?

Swagat sahoo
źródło