swagger的使用

1.要想使用swagger需要先在项目中进行配置:
以下代码的意思可以通过在专门的php文件中写入,然后再更新版本的时候可以直接更改该文件下的版本号,以及可以在这里直接设置header头的参数,这里的必须参数以签名、时间戳、用户id为例,非必须参数以版本为例;

/**
 * @SWG\Info(
 *   title="***接口文档",
 *   version="2.0.0"
 * )
 *
 * @SWG\Swagger(
 * 	 schemes={"http"}, //实用的协议类型
 *   swagger="2.0",   //使用的是2.0的swagger版本
 *   host="maimaimai.com",  //要访问的链接地址
 *   basePath="/",
 *   consumes={"application/x-www-form-urlencoded"}
 * )
 *
 * @SWG\Parameter(
 *   parameter="HeaderSign",
 *   name="x-access-sign",
 *   type="string",
 *   in="header",
 *   required=true,
 *   description="签名"
 * )
 *
 * @SWG\Parameter(
 *   parameter="HeaderTime",
 *   name="x-access-time",
 *   type="string",
 *   in="header",
 *   required=true,
 *   description="10位Unix时间戳"
 * )
 *
 * @SWG\Parameter(
 *   parameter="HeaderUid",
 *   name="uid",
 *   type="integer",
 *   in="header",
 *   required=true,
 *   description="用户ID"
 * )
 * 
 * @SWG\Parameter(
 *   parameter="HeaderVersion",
 *   name="x-access-version",
 *   type="string",
 *   in="header",
 *   required=false,
 *   description="版本号"
 * )
 */

2.swagger的请求方式有get、post、put、delete四种方式,下面看一下各种请求的请求实例以及效果吧
1》首先是get请求,一下是两种get请求的不同格式的写法

/**
     * @SWG\Get(
     *      path="/guide/{position}",
     *      tags={"其他"},   //swagger上的标签名
     *      summary="获取***信息",   //概要,摘要
     *      description="获取***信息",   //接口的详细描述
     *      @SWG\Parameter(ref="#/parameters/HeaderSign"),
     *      @SWG\Parameter(ref="#/parameters/HeaderTime"),
     *      @SWG\Parameter(ref="#/parameters/HeaderUid"),
     * 		@SWG\Parameter(ref="#/parameters/HeaderVersion"),
     *      @SWG\Parameter(
     *          name="position",
     *          type="string",
     *          in="path",
     *          required=true,
     *          description="位置()",
     *          format="string",
     *      ),
     *      @SWG\Parameter(
     *          name="os",
     *          type="string",
     *          in="path",
     *          required=true,
     *          description="版本(ios,android)",
     *          format="string"
     *     ),
     *     @SWG\Response(
     *          response="200",
     *          description="请求成功.",
     *          @SWG\Schema(
     *              type="object",
     *              required=	{"id","name","type","img","appid","path","details_img"},  //因为在这里是required,注意最下面有几个请求数据这里对应的写几个
     *              @SWG\Property(
     *                 property="id",type="int",description="id",example=155
     *              ),
     *              @SWG\Property(
     *                  property="name",type="string",description="name",example="测试"
     *              ),
     *              @SWG\Property(
     *                   property="type",type="integer",description="跳转类型",example="1"
     *              ),
     *              @SWG\Property(
     *                   property="img",type="string",description="img",example="https://album-1257018105.file.myqcloud.com/mis/5d8dda5012edd.gif"
     *              ),
     *              @SWG\Property(
     *                   property="appid",type="string",description="appid",example="wxdc93d68845c52efb"
     *              ),
     *              @SWG\Property(
     *                   property="path",type="string",description="path",example="%2Fpages%2Fhome%2Fhome%3Futm_source%3Dsside%26templateId%3D348"
     *              ),
     *              @SWG\Property(
     *                   property="details_img",type="string",description="details_img",example="https://album-1257018105.file.myqcloud.com/mis/5d85d89dd7d19.jpg"
     *              ),
     *          )
     *     ),

     *     @SWG\Response(
     *          response="400",
     *          description="uid必须"
     *     ),
     *     @SWG\Response(
     *          response="401",
     *          description="用户验证失败."
     *     ),
     *     @SWG\Response(
     *          response="403",
     *          description="验签失败."
     *     ),
     *     @SWG\Response(
     *          response="500",
     *          description="服务内部错误."
     *     )
     * )
     */
 /**
     * @SWG\Get(path="/user/info",tags={"swg"},summary="用户信息",description="永固的个人信息",
     *     @SWG\Parameter(ref="#/parameters/HeaderSign"),
     *     @SWG\Parameter(ref="#/parameters/HeaderTime"),
     *     @SWG\Parameter(ref="#/parameters/HeaderVersion"),
     *     @SWG\Parameter(ref="#/parameters/UID"),
     *     @SWG\P
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swagger是一个用于设计、构建和文档化RESTful Web服务的开源工具集。下面是一个简单的Swagger使用教程: 1. 安装Swagger:可以通过npm、pip等包管理工具安装Swagger相关的库和工具。例如,对于Node.js项目,可以使用以下命令安装swagger-jsdoc和swagger-ui-express: ```bash npm install swagger-jsdoc swagger-ui-express ``` 2. 编写Swagger注解:在你的API代码中,使用Swagger注解来描述API的信息、请求和响应参数等。以下是一个示例: ```javascript /** * @swagger * /api/users: * get: * summary: 获取所有用户 * description: 获取所有用户列表 * responses: * 200: * description: 成功获取用户列表 * schema: * type: array * items: * $ref: '#/definitions/User' */ ``` 在这个示例中,我们使用Swagger注解来描述一个GET请求,它可以获取所有用户的列表。 3. 生成Swagger文档:使用Swagger注解编写完API代码后,可以使用相应的工具将这些注解转换为Swagger文档。例如,对于Node.js项目,我们可以使用swagger-jsdoc库生成Swagger文档。在项目的入口文件中添加以下代码: ```javascript const swaggerJSDoc = require('swagger-jsdoc'); const swaggerUi = require('swagger-ui-express'); const options = { definition: { openapi: '3.0.0', info: { title: 'API文档', version: '1.0.0', }, }, apis: ['./path/to/api/controllers/*.js'], // API代码文件的路径 }; const swaggerSpec = swaggerJSDoc(options); app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec)); ``` 这段代码将会在`/api-docs`路径下提供Swagger文档。 4. 查看Swagger文档:运行项目并访问`/api-docs`路径,你将会看到生成的Swagger文档。Swagger提供了一个交互式的UI界面,可以方便地查看API的信息、请求和响应参数等。 这只是一个简单的Swagger使用教程,你可以根据自己的项目需求进一步深入学习和使用Swagger

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值