添加网站文件
This commit is contained in:
129
vendor/guzzlehttp/guzzle-services/README.md
vendored
Normal file
129
vendor/guzzlehttp/guzzle-services/README.md
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
# Guzzle Services
|
||||
|
||||
[](https://packagist.org/packages/guzzlehttp/guzzle-services)
|
||||
[](https://travis-ci.org/guzzle/guzzle-services)
|
||||
[](https://scrutinizer-ci.com/g/guzzle/guzzle-services/?branch=master)
|
||||
[](https://scrutinizer-ci.com/g/guzzle/guzzle-services/?branch=master)
|
||||
[](https://insight.sensiolabs.com/projects/b08be676-b209-40b7-a6df-b6d13e8dff62)
|
||||
[](https://packagist.org/packages/guzzlehttp/guzzle-services)
|
||||
[](https://packagist.org/packages/guzzlehttp/guzzle-services)
|
||||
[](https://packagist.org/packages/guzzlehttp/guzzle-services)
|
||||
|
||||
Provides an implementation of the Guzzle Command library that uses Guzzle service descriptions to describe web services, serialize requests, and parse responses into easy to use model structures.
|
||||
|
||||
```php
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\Command\Guzzle\GuzzleClient;
|
||||
use GuzzleHttp\Command\Guzzle\Description;
|
||||
|
||||
$client = new Client();
|
||||
$description = new Description([
|
||||
'baseUri' => 'http://httpbin.org/',
|
||||
'operations' => [
|
||||
'testing' => [
|
||||
'httpMethod' => 'GET',
|
||||
'uri' => '/get{?foo}',
|
||||
'responseModel' => 'getResponse',
|
||||
'parameters' => [
|
||||
'foo' => [
|
||||
'type' => 'string',
|
||||
'location' => 'uri'
|
||||
],
|
||||
'bar' => [
|
||||
'type' => 'string',
|
||||
'location' => 'query'
|
||||
]
|
||||
]
|
||||
]
|
||||
],
|
||||
'models' => [
|
||||
'getResponse' => [
|
||||
'type' => 'object',
|
||||
'additionalProperties' => [
|
||||
'location' => 'json'
|
||||
]
|
||||
]
|
||||
]
|
||||
]);
|
||||
|
||||
$guzzleClient = new GuzzleClient($client, $description);
|
||||
|
||||
$result = $guzzleClient->testing(['foo' => 'bar']);
|
||||
echo $result['args']['foo'];
|
||||
// bar
|
||||
```
|
||||
|
||||
## Installing
|
||||
|
||||
This project can be installed using Composer:
|
||||
|
||||
``composer require guzzlehttp/guzzle-services``
|
||||
|
||||
For **Guzzle 5**, use ``composer require guzzlehttp/guzzle-services:0.6``.
|
||||
|
||||
**Note:** If Composer is not installed [globally](https://getcomposer.org/doc/00-intro.md#globally) then you may need to run the preceding Composer commands using ``php composer.phar`` (where ``composer.phar`` is the path to your copy of Composer), instead of just ``composer``.
|
||||
|
||||
## Plugins
|
||||
|
||||
* Load Service description from file [https://github.com/gimler/guzzle-description-loader]
|
||||
|
||||
## Transition guide from Guzzle 5.0 to 6.0
|
||||
|
||||
### Change regarding PostField and PostFile
|
||||
|
||||
The request locations `postField` and `postFile` were removed in favor of `formParam` and `multipart`. If your description looks like
|
||||
|
||||
```php
|
||||
[
|
||||
'baseUri' => 'http://httpbin.org/',
|
||||
'operations' => [
|
||||
'testing' => [
|
||||
'httpMethod' => 'GET',
|
||||
'uri' => '/get{?foo}',
|
||||
'responseModel' => 'getResponse',
|
||||
'parameters' => [
|
||||
'foo' => [
|
||||
'type' => 'string',
|
||||
'location' => 'postField'
|
||||
],
|
||||
'bar' => [
|
||||
'type' => 'string',
|
||||
'location' => 'postFile'
|
||||
]
|
||||
]
|
||||
]
|
||||
],
|
||||
]
|
||||
```
|
||||
|
||||
you need to change `postField` to `formParam` and `postFile` to `multipart`.
|
||||
|
||||
More documentation coming soon.
|
||||
|
||||
## Cookbook
|
||||
|
||||
### Changing the way query params are serialized
|
||||
|
||||
By default, query params are serialized using strict RFC3986 rules, using `http_build_query` method. With this, array params are serialized this way:
|
||||
|
||||
```php
|
||||
$client->myMethod(['foo' => ['bar', 'baz']]);
|
||||
|
||||
// Query params will be foo[0]=bar&foo[1]=baz
|
||||
```
|
||||
|
||||
However, a lot of APIs in the wild require the numeric indices to be removed, so that the query params end up being `foo[]=bar&foo[]=baz`. You
|
||||
can easily change the behaviour by creating your own serializer and overriding the "query" request location:
|
||||
|
||||
```php
|
||||
use GuzzleHttp\Command\Guzzle\GuzzleClient;
|
||||
use GuzzleHttp\Command\Guzzle\RequestLocation\QueryLocation;
|
||||
use GuzzleHttp\Command\Guzzle\QuerySerializer\Rfc3986Serializer;
|
||||
use GuzzleHttp\Command\Guzzle\Serializer;
|
||||
|
||||
$queryLocation = new QueryLocation('query', new Rfc3986Serializer(true));
|
||||
$serializer = new Serializer($description, ['query' => $queryLocation]);
|
||||
$guzzleClient = new GuzzleClient($client, $description, $serializer);
|
||||
```
|
||||
|
||||
You can also create your own serializer if you have specific needs.
|
||||
Reference in New Issue
Block a user