安装yapi

Docker-compose安装部署 Yapi

一:docker安装方式:
1、启动 MongoDB
docker run -d --name mongo-yapi mongo
2、获取 Yapi 镜像,版本信息可在 [阿里云镜像仓库]
docker pull registry.cn-hangzhou.aliyuncs.com/anoy/yapi
3、初始化 Yapi 数据库索引及管理员账号
docker run -it --rm \
  --link mongo-yapi:mongo \
  --entrypoint npm \
  --workdir /api/vendors \
  registry.cn-hangzhou.aliyuncs.com/anoy/yapi \
  run install-server

自定义配置文件挂载到目录 /api/config.json,官方自定义配置文件 -> [传送门]

4、启动 Yapi 服务
docker run -d \
  --name yapi \
  --link mongo-yapi:mongo \
  --workdir /api/vendors \
  -p 3000:3000 \
  registry.cn-hangzhou.aliyuncs.com/anoy/yapi \
  server/app.js
▶ 使用 Yapi

访问 http://localhost:3000 登录账号 admin@admin.com,密码 ymfe.org
链接:https://pan.baidu.com/s/1dzXdHYABkNNNGuUu16YadQ 密码:utf1

遇到的问题

WARNING: IPv4 forwarding is disabled. Networking will not work

$ vim /etc/sysctl.conf
# 添加如下内容
net.ipv4.ip_forward=1
# 重启网络
systemctl restart network
# 查看网络 输出为1说明网络正常
sysctl net.ipv4.ip_forward

二:docker-compose的安装方式
1.修改docker-compose.yml文件里面相关参数
环境变量默认值建议
VERSION1.5.6可以修改成yapi已发布的版本
HOME/home可修改
PORT3000可修改
ADMIN_EMAILme@qq.com建议修改
DB_SERVERmongo(127.0.0.1)不建议修改
DB_NAMEyapi不建议修改
DB_PORT27017不建议修改
VENDORS${HOME}/vendors不建议修改
version: '2.1'
services:
  yapi:
    image: mrjin/yapi:latest
#    build: ./
    container_name: yapi
    environment:
      - VERSION=1.5.6
      - LOG_PATH=/tmp/yapi.log
      - HOME=/home
      - PORT=3000
      - ADMIN_EMAIL=me@qq.com
      - DB_SERVER=mongo
      - DB_NAME=yapi
      - DB_PORT=27017
    # restart: always
    ports:
      - 3000:3000
    volumes:
      - ~/data/yapi/log/yapi.log:/home/vendors/log # log dir
    depends_on:
      - mongo
    entrypoint: "bash /wait-for-it.sh mongo:27017 -- entrypoint.sh"
    networks:
      - back-net
  mongo:
    image: mongo
    container_name: mongo
    # restart: always
    ports:
      - 27017:27017
    volumes:
      - ~/data/yapi/mongodb:/data/db #db dir
    networks:
      - back-net
networks:
  back-net:
    external: true
2.创建网络
#   docker network create back-net
3.启动服务:
#    docker-compose up -d
4.默认密码是:ymfe.org,安装成功后进入后台修改

三:idea集成

在项目中的.idea文件中,找到misc.xml文件

一、单模块配置

  1. 在src/main/resources下面新建yapi.xml文件,内容如下:
<project version="4">
    <component name="yapi">
        <option name="projectToken">d22e8a1c3f586f0f423</option>
        <option name="projectId">93</option>
        <option name="yapiUrl">http://yapi.source3g.com</option>
        <option name="projectType">api</option>
        <option name="returnClass">com.source3g.common.Result</option>
        <!--<option name="attachUploadUrl">http://localhost/fileupload</option>-->
    </component>
</project>

二、多模块配置

<component name="yapi">
  <option name="moduleList">zendai-finance-b-rest,zendai-finance-e-rest</option>
</component>
<component name="zendai-finance-b-rest">
  <option name="zendai-finance-b-rest.projectToken">44d8230b1828a086a3f78451be2946116992ae90c7722b968e05022efad7ecd2</option>
  <option name="zendai-finance-b-rest.projectId">53</option>
  <option name="zendai-finance-b-rest.yapiUrl">http://10.51.211.109:3000</option>
  <option name="zendai-finance-b-rest.projectType">api</option>
</component>

<component name="zendai-finance-e-rest">

<option name="zendai-finance-e-rest.projectToken">64c4913f333b8406f907ea580af1b0d8184e865861e8179f8314d522d4039728</option>

<option name="zendai-finance-e-rest.projectId">47</option>

<option name="zendai-finance-e-rest.yapiUrl">http://10.51.211.109:3000</option>

<option name="zendai-finance-e-rest.projectType">api</option>

</component>

三、参数获得

  • token获取方式: 打开yapi ->具体项目->设置->token 配置

  • 项目id获取方式:打开yapi点击项目,查看url 中project 后面的数字为项目id,如下就是72

    http://127.0.0.1:3000/project/72/interface/api

  • yapiUrl 获取方式:部署的yapi 地址

  • projectType 填写方式: 根据你要上传的接口类型决定,如果为dubbo 接口就填dubbo ,如果是api 接口就填api

  • returnClass 返回包装类:使用拦截器的项目,可指定包装类的位置。没有使用拦截器可不填

  • attachUploadUrl 填写方式:上传java 类zip 的url,可不填,如果要用请实现http://localhost/fileupload 接口 接口请求参数为 file 文件类型

  • moduleList 获取方式:模块名称,用 “,” 分割 ,不支持父节点和子模块名称一样的情况

上传

  • 如果是dubbo 项目,选中dubbo interface 文件中的一个方法(要选中方法名称),右击YapiUpload(alt+u 快捷键)
  • 如果是api 项目,选中controller 类中的方法名称或类名(要**选中方法名称,或类名,选中类名为当前类所有接口都上传),右击YapiUpload(alt+u快捷键)

四、支持的注解

重要的事情说三遍:

良好的java doc 注释能生成更好的文档

良好的java doc 注释能生成更好的文档

良好的java doc 注释能生成更好的文档

1:插件如何生成属性备注 ,通过获得字段备注中的注释
/** 
* 年龄
*/
private Integer age;
2:插件如何生成接口名称,通过接口上的注释,或者引用上的 注释
   /**
     * 添加或更新课程数据
     *
     * @param courseOpt
     * @return {@link CommonRes}
     */
    @RequestMapping(value = "/test", method = RequestMethod.POST)
    public Course addOrUpdateCourse(@RequestBody CourseParam courseParam){
    
    }
    
    
    /**
     * @description: 添加或更新课程数据  (@Description 也可)
     * @param: [CourseParam]
     * @return: Course
     * @date: 2018/3/15
     */
     @RequestMapping(value = "/test", method = RequestMethod.POST)
     public Course addOrUpdateCourse(@RequestBody CourseParam courseParam){
    
    }

    
     
     @RequestMapping(value = ICourse.ADD_OR_UPDATA_COURSE, method = RequestMethod.POST)
     public Course addOrUpdateCourse(@RequestBody CourseParam courseParam){
    
     }

     public interface  ICourse{
       /**
        * @description: 添加或更新课程数据  (@Description 也可)
        * @param: [CourseParam]
       */
       ADD_OR_UPDATA_COURSE="test";
     }
3:@link 参数定义展示在字段备注中
第一种@link 方式

/** 
* 状态 {@link com.xxx.constant.StatusConstant}
*/
private Integer status;


第二种@link 方式

import com.xxx.constant.StatusConstant;

/** 
* 状态 {@link StatusConstant}
*/
private Integer status;


不支持方式
import com.xxx.constant.*;

/** 
* 状态 {@link StatusConstant}
*/
private Integer status;
4:实现自定义分类

通过在方法或类注释中加 @menu 注释实现,优先级 方法>类>package 下面或者上面的@menu,如果没有自定义 默认为tool-tmp,支持多级分类(多级分类只能是crazy 分支的yapi)

package com.project.demo;
/** 
 * @menu 这里填写类分类名称
 */
import com......
/** 
 *@description: 用户控制器
 *@menu 这里填写类分类名称
 */   
@RestController
public class UserController {

    /**
     * @description: 新增用户
     * @param: [User]
     * @menu: 这里填写方法级别分类名称(比如 多级目录/menu/menu1/menu2)
     * @return: Response<UserDTO>
     * @date: 2018/3/15
     */
     @RequestMapping(value = "/addUser", method = RequestMethod.POST)
     public Response<UserDTO> addUser(@RequestBody User user){
    
    }
}
5:支持注解
    String RequestMapping="org.springframework.web.bind.annotation.RequestMapping";

    String GetMapping="org.springframework.web.bind.annotation.GetMapping";

    String PostMapping="org.springframework.web.bind.annotation.PostMapping";

    String PutMapping="org.springframework.web.bind.annotation.PutMapping";

    String DeleteMapping="org.springframework.web.bind.annotation.PutMapping.DeleteMapping";

    String PatchMapping="org.springframework.web.bind.annotation.PutMapping.PatchMapping";

    String RequestBody="org.springframework.web.bind.annotation.RequestBody";

    String RequestParam="org.springframework.web.bind.annotation.RequestParam";

    String RequestHeader="org.springframework.web.bind.annotation.RequestHeader";

    String RequestAttribute="org.springframework.web.bind.annotation.RequestAttribute";
   
    String PathVariable="org.springframework.web.bind.annotation.PathVariable";

    String NotNull="javax.validation.constraints.NotNull";
   
    String NotEmpty="javax.validation.constraints.NotEmpty";
支持Request Param 注解

生成的 uid 和bid 备注为 用户id(Integer),baby id(Integer) 如果没有备注,则只有(Integer)

   /**
     * 测试RequestHeader desc 规范的多个
     * @param uid 用户id
     * @param bid baby id
     * @param request
     * @param response
     */
    @RequestMapping(value = "/testRequestDesc4")
    public void testRequestDesc4(@RequestHeader(name = "uid")Integer uid, @RequestParam(name = "bid")Integer bid, HttpServletRequest request, HttpServletResponse response){

    }
支持@status注解

支持已发布(done),设计中(design),开发中(undone),已提测(testing),已过时(deprecated),暂停开发(stoping),支持中英文 (crazy 分支),新增接口默认 开发中,更新时如果没有写status情况下默认使用当前状态

   /**
     * 测试RequestHeader desc 规范的多个
     * @param uid 用户id
     * @status 开发中 (或者 undone)
     * @param request
     * @param response
     */
    @RequestMapping(value = "/testRequestDesc4")
    public void testRequestDesc4(@RequestHeader(name = "uid")Integer uid, @RequestParam(name = "bid")Integer bid, HttpServletRequest request, HttpServletResponse response){

    }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值