用swagger-php/ui做API测试

功能:

1swagger-php根据自定义的规则生成API请求规则,通过phar生成json文件

2打开swagger-ui/dist/index.html。输入json文件夹目录地址(需要同源),swagger-ui会根据请求的JSON生成API,页面很漂亮。输入请求参数后执行会获取返回值。

缺点:不能对返回的数据进行验证。功能类似chrome的插件postman。

ApiAction测试参考代码:

Resource/PostAction.php

<?php
/**
 * @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

<?php

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

readme

# 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执行文件

#!/bin/sh
../swagger-php/swagger.phar ../output-docs -o ../documentation/output/

api

相关推荐