YApi高效易用功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务1,由去哪儿网开发,本文基于为 Yapi 定制 apline 版 Docker 镜像简要说明如何将基于docker安装的YapiLDAP集成。

  1. 利用docker创建MongoDB数据库

    1
    2
    3
    4
    5
    6
    
    docker run -d \
    --name mongo-yapi \
    -v $PWD/mongo-data:/data/db \
    -e MONGO_INITDB_ROOT_USERNAME=anoyi \
    -e MONGO_INITDB_ROOT_PASSWORD=anoyi.com \
    mongo
    
  2. 在当前目录下创建一个config.json文件,内容如下

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    
    {
      "port": "3000",
      "adminAccount": "admin@anoyi.com",
      "timeout":120000,
      "db": {
        "servername": "mongo",
        "DATABASE": "yapi",
        "port": 27017,
        "user": "anoyi",
        "pass": "anoyi.com",
        "authSource": "admin"
      }
    }
    
  3. 执行下述命令初始化 YAPI 数据库索引及管理员账号

    1
    2
    3
    4
    5
    6
    7
    
    docker run -it --rm \
    --link mongo-yapi:mongo \
    --entrypoint npm \
    --workdir /yapi/vendors \
    -v $PWD/config.json:/yapi/config.json \
    anoyi/yapi \
    run install-server
    

    若执行成功会出现下述界面

    yapi初始化成功

  4. 执行下述命令启动yapi

    1
    2
    3
    4
    5
    6
    7
    8
    
    docker run -d \
    --name yapi \
    --link mongo-yapi:mongo \
    --workdir /yapi/vendors \
    -p 3000:3000 \
    -v $PWD/config.json:/yapi/config.json \
    anoyi/yapi \
    server/app.js
    

    执行完毕后用docker logs yapi查看日志,若出现如下日志则表示启动成功

    yapi启动成功

  5. 根据上述提示在浏览器中打开yapi,其主页类似如下

    yapi主页

  6. 点击登录/注册 之后会打开如下图所示的登录界面,可用管理员账号登录(用户名admin@anoyi.com、密码ymfe.org),可发现此时其不支持LDAP登录

    yapi默认登录页

  7. config.json中添加LDAP相关的配置,之后输入docker restart yapi && docker logs yapi重启并观察日志

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    {
      "port": "3000",
      "adminAccount": "admin@anoyi.com",
      "timeout":120000,
      "db": {
        "servername": "mongo",
        "DATABASE": "yapi",
        "port": 27017,
        "user": "anoyi",
        "pass": "anoyi.com",
        "authSource": "admin"
      },
      "ldapLogin":{
         "enable":true,
         "server": "ldap://10.10.xx.xxx:389",
         "searchDn": "dc=xxx,dc=com",
         "searchStandard":"uid",
         "usernameKey":"uid"
       }
    }
    
  8. 重新打开yapi,其登录页中会出现类似如下的LDAP选项,至此,操作完成!

    yapi支持ldap登录