前提・実現したいこと
GitHubのAPIを使用して独自にレポジトリ検索用のアプリを作成しています。
公式のドキュメントを参考にしているのですが、HTTPステータスコード422というエラーが返ってきてしまい、うまくいきません。
Search | GitHub Developer Guide
※例として下記コードでは"tetris"という文字列が入るレポジトリ名を検索しようとしています。
※422はMozillaのサイトに「要求本文の構文が正しいものの、中に含まれている指示が処理できなかったことを表します。」とありますが、これは一体??という状態です...。
発生している問題・エラーメッセージ
Fatal error: Uncaught GuzzleHttp\Exception\ClientException: Client error: `GET https://api.github.com/search/repositories` resulted in a `422 Unprocessable Entity` response: { "message": "Validation Failed", "errors": [ { "resource": "Search", "field": "q", "code": "m (truncated...) in C:\xampp\htdocs\public_html\test\php\play_gig\http\vendor\guzzlehttp\guzzle\src\Exception\RequestException.php:113 Stack trace: #0 C:\xampp\htdocs\public_html\test\php\play_gig\http\vendor\guzzlehttp\guzzle\src\Middleware.php(66): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response)) #1 C:\xampp\htdocs\public_html\test\php\play_gig\http\vendor\guzzlehttp\promises\src\Promise.php(203): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response)) #2 C:\xampp\htdocs\public_html\test\php\play_gig\http\vendor\guzzlehttp\promises\src\Promise.php(156): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), Array) #3 C:\xampp in C:\xampp\htdocs\public_html\test\php\play_gig\http\vendor\guzzlehttp\guzzle\src\Exception\RequestException.php on line 113
該当のソースコード
php
1<?php 2 3require 'vendor/autoload.php'; 4use GuzzleHttp\Client; 5 6$client = new Client(); 7 8$res = $client->request('GET', 'https://api.github.com/search/repositories', [ 9 'q' => 'tetris', 10 'sort' => 'stars', 11 'order' => 'desc' 12]); 13 14echo $res->getBody(); 15
試したこと
表示制限が1,000までということなので、
条件の絞り込みをおこなうべく、
下記のようにつくりかえてみましたが、同じエラーが起きてしまいました...。
php
1$res = $client->request('GET', 'https://api.github.com/search/repositories', [ 2 'q' => [ 3 'in' => 'tetris', 4 'language' => 'assembly' 5 ], 6 'sort' => 'stars', 7 'order' => 'desc' 8]); 9
また、試したということではありませんが、GitHubのAPIにおいてGETのリクエストは認証情報が必要ないということだったので、上記のようなコードになっています。
補足情報(FW/ツールのバージョンなど)
PHP -> 7.2.5
Guzzle(HTTPクライアントライブラリ) -> 20180604時点で最新版
回答1件
あなたの回答
tips
プレビュー