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


98

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

回答:


67

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

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

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


1
コールバックURLが正しく設定されていないと、エラーが発生しますか?
user3768495 2016

@ user3768495そうではないと思いますが、それはAPIの実装に依存します。理論的には、内部的にトランザクションのコールバック部分を作成し、コールバックが2xx応答を返さない場合、元の要求によって行われた変更をロールバックできます。
Eric Stein、

/api.example.com/fooでPOSTリクエストへの応答を送信する必要がありますか?
Abhijeet

@Abhijeetあなたがする必要ありません。応答を含めることが適切な場合は、そうします。
Eric Stein

別の言い方をすれば、クライアント側またはサーバー側のどこにコールバックURLを保持する必要があると思いますか?
Khatri 2017

28

それを手紙と考えてください。時々、フォームに記入するように要求して、フォームを収容していた元の封筒に入っている、事前にアドレス指定された封筒でフォームを返すという手紙を受け取ります。

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

callbackUrlは、戻りエンベロープに似ています。基本的に私はあなたにこのデータを送ると言っています。あなたがそれを終えたら、私はあなたの応答を待っているこのcallbackUrlにいます。したがって、APIは送信したデータを処理し、コールバックを調べて応答を送信します。

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


12

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

図

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

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


4

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

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

したがって、APIを呼び出して、リクエストを「処理中」または「取得済み」などとユーザーに通知し、APIからの応答を受け取ったときにステータスを更新できます。

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


2

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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.