bagart / laravel-api-provider
测试工作:Laravel 位置 API 的响应
dev-master
2017-12-05 02:25 UTC
Requires
- php: >=7.1.0
- guzzlehttp/guzzle: ^6.2@dev
This package is not auto-updated.
Last update: 2024-09-21 16:44:46 UTC
README
需要实现 Symfony3 或 Laravel 扩展,以便获取存储在预定义格式中的 JSON 编码位置数据。
验收标准
- 客户端应定义为扩展配置中的一个服务类;
- 客户端应利用 CURL 作为传输层(可以依赖任何第三方 **扩展,但应作为一个单独的类/包实现);
- 在 CURL 错误、格式不正确的 JSON 响应和错误 JSON 响应上应抛出适当的异常;
- 结果数据应以适当的数组(或其他集合)形式获取
JSON 响应格式
{ "data": { "locations": [ { "name": "Eiffel Tower", "coordinates": { "lat": 21.12, "long": 19.56 } }, ... ] }, "success": true }
JSON 错误响应格式
{
"data": {
"message": <string error message>,
"code": <string error code>
},
"success": false
}
安装
composer require bagart/laravel-api-provider '@dev'
使用
/** * @var \Bagart\LaravelApiProvider\Providers\DataProvider $data_provider */ $data_provider = app(\Bagart\LaravelApiProvider\Providers\DataProvider::class); dump($data_provider->request('http://dockerhost/example.json', 'locations')); dump($data_provider->request('http://dockerhost/example2.json', 'locations')); try { $data_provider->request('http://dockerhost/error.json', 'locations'); } catch (\Bagart\LaravelApiProvider\Exceptions\LaravelApiProviderException $e) { dump("LaravelApiProviderException: {$e->getMessage()}"); }
功能
使用
Guzzle
(作为选项的 curl 内部)
待办事项
- 请求空逻辑和 API 空格式
- PHPUnit 测试
技术细节
合同
Bagart\LaravelApiProvider\ApiClientContract
Bagart\LaravelApiProvider\DataProviderContract
Bagart\LaravelApiProvider\DataContainerContract
异常
所有预期的异常都是 Bagart\LaravelApiProvider\Exceptions\LaravelApiProviderException
实例