Logo
エッセンシャルズ
API の要点
コンテンツの種類

コンテンツの種類

Infobip API は、いくつかの コンテンツ タイプ (opens in a new tab) をサポートしています。ほとんどの API 要求と応答は、アプリケーション/json または アプリケーション/xml のいずれかになります。JSON 形式 (opens in a new tab)XML 形式 (opens in a new tab) の詳細については、少し時間を取ってください。

メール送信などの一部の API エンドポイントでは multipart/form-data が使用されるため、詳細については、ターゲットエンドポイントの専用ドキュメントページを確認することをお勧めします。

response Content-Type の指定

目的の API 応答コンテンツ タイプは、次の 2 つの方法のいずれかで指定できます。

Accept ヘッダー

1 つ目は、標準の Accept (opens in a new tab) HTTP ヘッダーを使用する方法です。

リクエスト例:

json
 
    GET /sms/1/reports HTTP/1.1
    Host: api.infobip.com
    Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
    Accept: application/json
 

応答例:

json
 
    {
        "results": []
    }
 

パスの拡張

なんらかの理由で API 呼び出しの Accept ヘッダーを変更できない場合は、特定のコンテンツ タイプを要求する別の方法があります。これを行うには、選択したコンテンツタイプに対応する拡張子を持つ要求パスを追加します。

コンテンツの種類パスの拡張
application/json.json
application/xml.xml

次の要求:

json
 
    GET /sms/1/reports.xml HTTP/1.1
    Host: api.infobip.com
    Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
 

は、次のようなXML形式の応答を返します。

json
 

request Content-Type の指定

要求本文データのコンテンツの種類は、要求の Content-Type ヘッダーで指定する必要があります。特に指定しない場合、API エンドポイントは application/json または application/xml タイプのコンテンツを受け入れます。

備考

HTTP メッセージ本文データを含む API 要求の Content-Type ヘッダーを指定する必要があります。これらは通常、POST および PUT HTTP メソッドを使用する要求です。

たとえば、SMS メッセージを JSON または XML で書式設定できますが、それに応じて Content-Type ヘッダーに入力する必要があります。

REQUEST SAMPLES
 
    POST /sms/1/text/single HTTP/1.1
    Host: api.infobip.com
    Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
    Content-Type: application/json
    
    {
       "to":"41793026727",
       "text":"Test SMS."
    }
 

最後に、API 応答は既定で送信されたコンテンツと一致することに注意してください。ただし、要求本文データの送信に使用されたコンテンツ タイプとは異なるコンテンツ タイプで API 応答を受信する場合は、Accept ヘッダーを明示的に設定することで、この動作を変更できます。これは、電子メールを multipart/form-data 形式で送信する場合に便利で、応答には別のコンテンツタイプが望ましいです。

json
 
    POST /email/1/send HTTP/1.1
    Host: api.infobip.com
    Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
    Accept: application/json
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
    
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="from"
    
    Jane Doe 
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="to"
    
    john.smith@somedomain.com
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="subject"
    
    Mail subject text
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="text"
    
    Mail body text
    ------WebKitFormBoundary7MA4YWxkTrZu0gW--
 

上記の要求は、JSON形式の応答を生成します。

Bad Request エラー

API は、一般的な間違いを区別し、適切な方法で対応しようとします。たとえば、HTTP メッセージ本文データに問題がある場合、API は HTTP ステータス 400 (Bad request) で応答し、応答本文は次のようになります。

REQUEST SAMPLES
 
    {
        "requestError": {
            "serviceException": {
                "messageId": "BAD_REQUEST",
                "text": "Bad request"
            }
        }
    }
 

この応答にはいくつかの原因が考えられますが、一般的な原因をいくつか紹介します。

  • content-type ヘッダーがありません
  • Content-type が送信された本文データと一致しません
  • 送信された本文データが JSON または XML 形式に準拠していない

ただし、API 要求本文データ内の認識されないパラメーターは、要求が適切に書式設定されている限り、要求が自動的に失敗することなく無視されます。このため、対象の API エンドポイントの専用ドキュメントと、そこで定義されている受け入れられるパラメーターのリストを参照することをお勧めします。

応答の解析

API応答を解析するときは、JSON (opens in a new tab) または XML (opens in a new tab) 仕様に準拠していることを確認してください。それぞれに具体的な詳細が関連付けられています。たとえば、JSON形式では、オブジェクト内の名前と値のペアの順序は保証されません。したがって、JSON API 応答を解析するときにプロパティの順序に依存しないでください。

選択した言語に応じて、JSON / XML解析のネイティブサポートが組み込まれているか、それを処理する外部ライブラリを使用する場合があります。

Logo

ご不明点は

サポートまでお問い合わせ

ください

© NTTCom Online Marketing Solutions Corporation