0

Guzzle Service Descriptor フィールドを自動的に取得し、配列を取得してコンマ リストに解析する方法はありますか?

データ

Array [ "test", "another test" ]

サービス記述子

{
    "name": "YouTube",
    "baseUrl": "https://www.googleapis.com",
    "apiVersion": "v3",
    "description": "YouTube GData Graph API",
    "operations": {
        "GetVideos": {
            "httpMethod": "GET",
            "uri": "/youtube/v3/videos",
            "parameters": {
                "id": {
                    "type":"array",
                    "location":"query",
                    "required": true
                },
                "part": {
                    "location": "query",
                    "default": "snippet"
                },
                "key": {
                    "location": "query",
                    "default": "{MY KEY}",
                    "static": true
                },
                "maxResults": {
                    "location": "query",
                    "default": 50
                }
            }

        }
    }
}

フィールドはidunderparametersです。文字列の生のphp配列をそれに提供し、Guzzleにそれをカンマ区切りのリストに自動的に変換させたいと思います

今、私はこれをしなければなりません:

$command = $this->client->getCommand('GetVideos', [
    'id' => implode(",", array_slice($this->id, 0, 50))
]);

現時点では、id の複数のインスタンスを持つ URL が作成されます

https://www.googleapis.com/youtube/v3/videos?id=test&id=another%20test&part=snippet&key={MY KEY}&maxResults=50

そして、私はそれが次のように出てくることを望みます:

https://www.googleapis.com/youtube/v3/videos?id=test,another%20test&part=snippet&key={MY KEY}&maxResults=50

これは可能ですか?

4

1 に答える 1

0

Guzzle 3Queryは、アグリゲーターを持つオブジェクトからクエリ文字列を構築します。を呼び出すことにより->setAggregator($aggregator)Queryデフォルトの動作をオーバーライドできます。のインスタンスを指定しますGuzzle\Http\QueryAggregator\CommaAggregator

Guzzle のドキュメントにはあまり記載されていませんが、簡単な言及があります。

于 2014-07-24T17:26:54.077 に答える