GitHub API の 400 エラー:原因と解決策400
エラーの概要 GitHub APIの400エラーは「Bad Request」を意味し、クライアント側の送信内容に問題があることを示します。リクエストの形式が不正だったり、必須パラメータが不足していたり、パラメータ値が無効だったりするときに発生します。このエラーが発生した場合、サーバー側に問題があるのではなく、APIへの呼び出し方を見直す必要があります。 実際のエラーメッセージ例 GitHub APIが返す実際の400エラーレスポンスは以下のようなものです。 { "message": "Problems parsing JSON", "documentation_url": "https://docs.github.com/rest" } あるいはバリデーションエラーの場合: { "message": "Validation Failed", "errors": [ { "message": "Required field \"title\" is missing", "field": "title", "code": "missing_field" } ], "documentation_url": "https://docs.github.com/rest/reference/issues#create-an-issue" } よくある原因と解決手順 原因1:JSONの形式が不正である なぜ発生するか リクエストボディをJSON形式で送信する際に、ダブルクォートの閉じ忘れやカンマの不足など、JSON形式として正しくない構文を送ってしまった場合に発生します。 Before(エラーが起きる例) curl -X POST https://api.github.com/repos/<owner>/<repo>/issues \ -H "Authorization: token <your-token>" \ -H "Content-Type: application/json" \ -d '{"title": "New issue" "body": "This is a test"}' 上記の例では、"New issue"と"body"の間にカンマがありません。 After(修正後) curl -X POST https://api.github.com/repos/<owner>/<repo>/issues \ -H "Authorization: token <your-token>" \ -H "Content-Type: application/json" \ -d '{"title": "New issue", "body": "This is a test"}' 原因2:必須パラメータが不足している なぜ発生するか APIエンドポイントが要求する必須パラメータをリクエストに含めていない場合に発生します。例えば、IssueやPull Requestの作成時にtitleが必須なのに省略した場合などです。 ...