REST APIでエラーが発生したときの対処法
REST APIでエラーとなる場合、レスポンスにエラーコード、メッセージを含むJSON文字列が返されます。
REST APIリファレンスの『エラーレスポンス』にある、HTTPステータスごとのエラーコードの一覧表をご確認ください。あわせて、REST APIへのリクエスト内容が正しいか見直してください。
「expected XXX, but received YYY」が返される
エンドポイントのパラメーターが要求する型と、リクエストしたデータの型が一致していません。
XXXにはエンドポイントが要求する型、YYYにはリクエストされた型が表示されます。要求されているXXXの型でリクエストするよう、処理を見直してください。
例えば、idsという「UUID文字列の配列」を要求するパラメーターに対して、UUID文字列を指定した場合は「... expected array, but received String: ...」のようなエラーメッセージが返されます。
| idsへの正しい指定(UUID文字列の配列) | idsへの誤った指定(UUID文字列) |
|---|---|
| ["12345678-1234-5678-1234-123456789012"] | "12345678-1234-5678-1234-123456789012" |
「invalid_parameter: フィールドコードが不正です」が返される
REST APIからチケットを更新する際に発生するエラーです。次のようなケースで発生します。
フィールドコードの指定に誤りがある
入力ミスなどにより、存在しないフィールドコードがAPIリクエストで指定されていることが考えられます。
ワークフローの各セクションのフォームに、指定したフィールドコードに該当するフィールドが存在するかご確認ください。
ワークフローの「承認者による上書き」の設定に従っていない
ワークフローの「承認者による上書き」の設定に応じて、チケットを更新するリクエストボディに含めているフィールドに過不足がないかご確認ください。
- 「承認者による上書き」の設定が「承認者用フィールドのみ上書き可能(デフォルト)」の場合
- REST APIのリクエストボディには、各フィールドの「入力可能なユーザー」の設定で「承認者が入力可能」にチェックが付いているフィールドのみを含めるようにしてください。
- 「申請者が入力可能」と「承認者が入力可能」の両方にチェックが付いている場合も同様です。
- 「承認者による上書き」の設定が「すべてのフィールドを上書き可能」の場合
- REST APIのリクエストボディには、すべてのフィールドを含めるようにしてください。
「承認者による上書き」の設定によって、リクエストボディに含めるべきフィールドが変わります。設定を必ず確認してください。
「"invalid_parameter": "Invalid request: value at root is not an array"」が返される
REST APIのリクエストエンドポイントが「文字列の配列(Array of strings)」などの配列形式のクエリパラメータを要求している場合、パラメータ名の後ろに [] を付けて値を指定する必要があります。
例えば、status のように「Array of strings」として定義されたクエリパラメータには、以下のように指定してください。
| 正しい指定方法(GETリクエストのURL例) | 誤った指定例 |
|---|---|
https://api.kickflow.com/v1/workflows?status[]=visible |
https://api.kickflow.com/v1/workflows?status=visible |
「endpoint_not_found」が返される
REST APIのリクエストエンドポイントのURLの指定が正しいかご確認ください。
指定が正しいにもかかわらずendpoint_not_foundのエラーとなる場合は、REST APIにリクエストする際のHTTPメソッドが誤っている可能性があります。
APIの仕様と照らし合わせて、正しいHTTPメソッドでリクエストしているかご確認ください。
curlコマンドで検証する場合は、HTTPメソッドを--requestオプションで明示的に指定してください。指定しない場合は、GETメソッドによるリクエストとなります。
curl --location https://api.kickflow.com/v1/user \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxxx' \
--request GET
CloudFrontからHTTP 403エラーが返される
リクエストに不備がある場合、CloudFrontから以下のようなエラーメッセージが返されます。
403 ERROR
The request could not be satisfied.
Bad request.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
Generated by cloudfront (CloudFront)
Request ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
* Connection #0 to host api.kickflow.com left intact
次の点をご確認ください。
- リクエストする際のURLのスキームが
http://になっていないか- REST APIのエンドポイントは、HTTPによる通信は受け付けていません。必ず
https://でリクエストしてください。
- REST APIのエンドポイントは、HTTPによる通信は受け付けていません。必ず
- GETメソッドのリクエストに本文(リクエストボディ)を含んでいないか
- CloudFrontはGETメソッドに本文を含む場合に、HTTPステータスコード403を返します。詳しくは『カスタムオリジンの場合のリクエストおよびレスポンスの動作』(外部サイト)をご確認ください。