用swagger-php/ui干API测试

原创
2016-06-13 12:15:12 1465浏览

用swagger-php/ui做API测试
功能:
1 swagger-php根据自定义的规则生成API请求规则,通过phar生成json文件
2 打开swagger-ui/dist/index.html。输入json文件夹目录地址(需要同源),swagger-ui会根据请求的JSON生成API,页面很漂亮。输入请求参数后执行会获取返回值。
缺点:不能对返回的数据进行验证。功能类似chrome的插件postman。
Api Action测试参考代码:
Resource/PostAction.php
Java代码 收藏代码
/**
* @SWG\Resource(
* apiVersion="2.2.0",
* swaggerVersion="1.2",
* basePath="http://test.xxx.com/Api/Post",
* resourcePath="/Post",
* description="Operations about Post",
* produces="['application/json']"
* )
*/

/**
* @SWG\Api(
* path="/apps",
* @SWG\Operation(
* method="POST",
* summary="Find app by buID",
* notes="Returns apps based on BUID",
* type="Post",
* nickname="apps",
* authorizations={},
* @SWG\Parameter(
* name="apiVersion",
* description="api version",
* required=true,
* type="integer",
* format="int64",
* paramType="form",
* minimum="1.0",
* allowMultiple=false
* ),
* @SWG\Parameter(
* name="sessionID",
* description="user login session",
* required=true,
* type="string",
* paramType="form",
* defaultValue="9f6cdd0858a1e93b1426659b283a93ec",
* allowMultiple=false
* ),
* @SWG\Parameter(
* name="buID",
* description="BU ID",
* required=true,
* type="int64",
* paramType="form",
* allowMultiple=false
* ),
* @SWG\ResponseMessage(code=400, message="Invalid ID supplied"),
* @SWG\ResponseMessage(code=404, message="Post not found"),
* @SWG\ResponseMessage(code=405, message="Invalid input"),
* @SWG\ResponseMessage(code=200, message="success")
* )
* )
*/

项目描述信息
Info/api.php
Java代码 收藏代码

/**
* @SWG\Info(
* title="MY Project",
* description=" xxx",
* )
*
*/

readme
Java代码 收藏代码
# Usage of API Docs
### Raw Spec Structure
* Info - General Info.
* Model - Entity Class
* Resource - API endpoint

### Compile API info.
* after modify the spec, run shell script, as follows.

`cd api-docs`

`./genDocumentation.sh`

* the compiled content (.json) is stored in documentation/Output/

### View API docs
* visit http://{domain}/documenation/


sh 执行文件
Java代码 收藏代码
#!/bin/sh
../swagger-php/swagger.phar ../output-docs -o ../documentation/output/

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。