web-dev-qa-db-ja.com

APIに関連するコールバックURLとは何ですか?

私はネットを精査してきましたが、コールバックURLのアイデアに頭を悩ませることはできません。私の場合、自分で定義する必要があるコールバックURLがいくつかあります。人気のあるものは「デフォルトのコールバックURL」です。これは正確に何ですか?わかりやすい英語で例を挙げていただけますか?

73
ApathyBear

コールバックURLは、実行後に呼び出しているAPIメソッドによって呼び出されます。だからあなたが電話した場合

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

その後、/fooが終了すると、http://my.server.com/barにリクエストを送信します。そのリクエストの内容と方法はさまざまです。アクセスしているAPIのドキュメントを確認してください。

56
Eric Stein

それを手紙と考えてください。場合によっては、フォームに記入するよう求められ、フォームを収容していた元の封筒にある事前に宛てられた封筒に返送するように言う手紙を受け取ります。

フォームへの記入が完了したら、提供された返送用封筒に入れて送り返します。

CallbackUrlは、返送エンベロープに似ています。あなたは基本的に私がこのデータを送っていると言っています。完了したら、このコールバックUrlで応答を待っています。したがって、APIは送信したデータを処理し、コールバックを見て応答を送信します。

いくつかのデータを処理するのに時間がかかる場合があり、呼び出し側が応答を待つのは意味がないので、これは便利です。たとえば、ユーザーのAPIを使用してドキュメントを送信し、ウイルススキャンすることができます。その後、レポートを送信します。スキャンには3分ほどかかる場合があります。ユーザーは3分間待つことはできません。そのため、ドキュメントを受け取ったことを確認し、スキャンを実行している間、呼び出し元に他のビジネスを続けさせ、スキャンの結果を伝えるために完了したらcallbackUrlを使用します。

14
Taf Munyurwa

コールバックURLを使用する場合、APIはコールバックURLに接続してデータを送受信できます。つまり、APIは後で(API呼び出し後)接続できます。

Diagram

  1. YOUAPIへのリクエストを使用してデータを送信
  2. APIは、2番目のリクエストを使用してYOUにデータを送信します

正確な定義はAPIドキュメントに記載する必要があります。

6
jiwopene

これは、非同期の方法でAPIを呼び出すためのメカニズムです。シーケンスは次のとおりです

  1. アプリがURLを呼び出し、コールバックURLをパラメーターとして渡します
  2. aPIは20x HTTPコードで応答します(201は推測しますが、APIドキュメントを参照してください)
  3. aPIは一定時間リクエストに応じて機能します
  4. aPIは、コールバックURLアドレスで結果を提供するためにアプリを呼び出します。

そのため、APIを呼び出して、たとえばリクエストが「処理中」または「取得済み」であることをユーザーに伝え、APIから応答を受け取ったときにステータスを更新できます。

それが理にかなっていることを願っています。 -G

1
Giuseppe B

別のユースケースはOAuthのようなもので、APIから直接呼び出されることはありません。代わりに、IDプロバイダーとの認証が完了した後、ブラウザーによってコールバックURLが呼び出されます。

通常、ユーザー名パスワードのエンドユーザーキーの後、アイデンティティサービスプロバイダーは、一時的な認証コードを使用して、「コールバック」URLへのブラウザーリダイレクトをトリガーします。

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

次に、アプリケーションはこの認証コードを使用して、はるかに長い寿命を持つIDプロバイダーでアクセストークンを要求できます。

1
Hainan.Z