ブラウザでWeb APIをテストする方法
- 2022年4月21日
- by SendGrid
- Category: 技術ネタ 機能・使い方
はじめに
Web APIを試したいと思ったとき、皆さんはどのようなツールを利用しますか?有名なツールとしてPostmanがありますが、今回はブラウザの拡張機能を使い、アカウント登録も必要なく手軽に試せる方法をご紹介します。ぜひAPIでSendGridのメール送信をテストする際の参考にしてください。
Google Chrome拡張機能「Talend API Tester」
今回使うのは「Talend API Tester」というGoogle Chromeの拡張機能です。Google Chromeを立ち上げたら、こちらのページから追加可能です。追加するとアドレスバーの右に拡張機能のボタンが表示されるので、クリックして下のような画面に移動します。この画面上で必要な項目を入力し、SendボタンをクリックするだけでAPIリクエストができます。
一般的に、APIでリクエストを行うには以下の情報が必要です。
- メソッド
実行したい処理の種類を指定します。GET、POSTなどがHTTPの仕様として定義されています。 - URL
そのAPIがWeb上のどこにあるかを指定します。 - ボディ
実行したい処理に関する具体的な情報を指定します。APIによっては指定の必要がない場合もあります。 - ヘッダ
ボディの他に必要となる付加的な情報(メタデータ)を指定します。
APIを提供するサービスは通常、「APIリファレンス」を公開しています。APIリファレンスとは、上で述べたメソッド、URL、ボディ、ヘッダの指定方法を記した、いわばAPIの取扱説明書です。次章ではSendGridのAPIリファレンスを参照しながら、メール送信API(v3 Mail Send API)を試していきます。
SendGridのWeb APIでメールを送信する
事前準備
APIを試す前に、少し準備が必要です。
Web APIでリクエストを実行する際には、認証(=あなたがあなたであることの確認)を行います。アカウントを持っていない人が自由にWeb APIを使うことはできません。まずは、無料アカウント登録を行いましょう。
SendGridのWeb APIでは、ダッシュボードで発行できる「APIキー」を認証情報として用います。アカウントにログインできたら、APIキーを発行しましょう。手順はこちらのページを参照してください。発行したAPIキーは後で使うので、コピーしてどこかに保存しておきます。
リクエスト内容の構築
いよいよAPIを試します。メール送信APIに関する情報はこちらのAPIリファレンスページにあります。記載に従って、Talend API Testerの画面上でリクエストを構成していきます。
メソッドとURL
メソッドはPOST、URLはhttps://api.sendgrid.com/v3/mail/sendです。画面上のSendボタンの左のテキストボックスでこれらを指定します(下の図を参考にしてください)。
ヘッダ
SendGridのWeb APIの場合、以下の2つのヘッダを設定する必要があります。
- Content-Typeヘッダ:「application/json」を指定します。
- Authorizationヘッダ:”Bearer “という文字列に続いて先ほど発行したAPIキーを指定します。
画面上の「HEADERS」に、コロン「:」で挟まれた2つのテキストボックスが並んでいます。「Content-Type:application/json」、「Authorization:Bearer <APIキー>」となるように入力しましょう。APIキーの文字列が「SG.XXXXX」の場合、Authorizationヘッダには「Bearer SG.XXXXX」を指定します。Bearerの後ろに半角スペースが必要です。
ボディ
APIリファレンスの「Requst Body」の内容をコピーして、Talend API Testerの「BODY」欄にペーストします。
{ "personalizations": [ { "to": [ { "email": "john@example.com" } ], "subject": "Hello, World!" } ], "from": { "email": "from_address@example.com" }, "content": [ { "type": "text/plain", "value": "Hello, World!" } ] }
この例では宛先にjohn@example.com、送信元にfrom_address@example.comが指定されています。宛先はメール受信が確認できるアドレスに書き換えましょう。
リクエストの送信と結果の確認
ここまでできたら、SendボタンをクリックしてAPIリクエストを実行します。実行画面のリクエストの下にある「Response」欄にサーバからの応答が記載されます。「202 Accepted」が表示されたら、メール送信のAPIリクエストがSendGridに受け付けられたことを意味します。これでAPIリクエストは完了です!宛先に指定したアドレスのメールボックスを確認して、メールが届いていることを確認しましょう。
ブラウザ上で必要な情報を入力するだけで、手軽にAPIを実行することができました。皆さんもぜひAPIをテストする手段として活用してみてはいかがでしょうか?
補足:よくあるミス
「202 Accepted」以外が表示されたら、リクエストの指定に間違いがあった可能性があります。その場合、レスポンスのボディにその詳細が記されます。以下でいくつか例を紹介します。
415 Unsupported Media Type
「BODY」欄を見ると、”Content-Type should be application/json.”とあります。Content-Typeヘッダに正しく「application/json」が指定されていることを確認してください。
401 Unauthorized
“Permission denied, wrong credentials”とあります。認証情報が間違っているようです。Authorizationヘッダには「Bearer SG.XXXXX」と正しく記載されていますか?
400 Bad Request
“The to array is required for all personalization objects, and must have at least one email object with a valid email address.”とあります。宛先(To)は指定されているでしょうか。そしてそれはメールアドレスとして正しいフォーマットでしょうか?
このように、サーバから返されたエラーメッセージを読むことで原因を推定することができます。返却されるエラーメッセージの例はこちらのページをご覧ください。