머리말
지난 며칠 동안 회사의 3개월 데모 버전 프로젝트를 마침내 완료했습니다. 이 기간 동안 저는 API에 대해 회사 백엔드와 '내 인터페이스는 괜찮아, 너야. 이것은 올바른 요청 방법이 아닙니다! ', '요청한 매개변수가 잘못된 게 틀림없어'... 이런 문제는 지난 3개월 동안 지속됐는데, 단지 우리가 인터페이스 관리 습관이 좋지 않고, 문제 없는 도구들을 많이 사용하지 않았기 때문일 뿐이고, 인터페이스 정의는 기본적으로 구두로 전달되는 것이 매우 무작위입니다. 따라서 YApi 인터페이스 관리 플랫폼을 먼저 사용해야 한다고 생각합니다. 게다가 Zhang Xinxu도 인터페이스 관리를 요구하고 있으며 프런트 엔드도 도구를 사용해야 합니다. 생산성을 해방하고 효율성을 향상시키세요!
노드 설치
Yapi 설치는 node.google에 의존해야 하기 때문에 centos 환경에서는 노드를 설치하는 다양한 방법이 수천 가지가 있습니다. 하지만 여전히 함정을 밟았습니다. wget 기반의 소스 코드 설치 방법이 실패한 이유를 모르겠습니다. 물론 make하는 동안 너무 오래 기다렸기 때문에 직접 Ctrl을 사용했습니다. +c. nvm을 사용하여 설치하는 것이 더 좋지만 합리적인지는 모르겠습니다. 음성으로 코딩하세요:
-
Wget 다운로드 및 설치 nvm
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
로그인 후 복사또는 Curl
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
로그인 후 복사 -
다운로드가 완료된 후 시스템 환경에 참여하세요
source ~/.bashrc
로그인 후 복사 -
설치 확인
command -v nvm
로그인 후 복사 -
리모컨 보기 node version
nvm ls-remote
로그인 후 복사 -
설치 필수 버전은 nodejs(7.6+)
nvm install 10.2.1
로그인 후 복사
Install mongdb
yapi가 필요합니다. 이론적으로 Centos mongdb는 여기서 구성할 수 있습니다. centos가 64비트인 경우
마찬 가지 설치 방법이 있습니다. 여기서는 yum을 사용하여 설치하세요
-
yum 패키지 관리 구성을 수정하세요
vi /etc/yum.repos.d/mongodb-org-3.4.repo // 会自动新建mongodb-org-3.4.repo文件
로그인 후 복사 -
다음 구성 정보를 복사하세요.
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=0 enabled=1
로그인 후 복사 -
mongodb 설치
yum install -y mongodb-org // 一路yes安装mongodb
로그인 후 복사 -
mongdb 구성 수정(공용 네트워크 접근 가능: 127.0.0.1 => 0.0.0.0)
vi /etc/mongod.conf
로그인 후 복사 -
mongodb 시작
systemctl start mongod.service // 启动mongodb
로그인 후 복사
Alibaba Cloud 서버인 경우 보안 그룹에 포트 12071을 추가하세요. 물론 공개 주소를 통해 접속하세요. 현재로서는 안전하지 않습니다
이때는 누구나 귀하의 mongdb 데이터에 연결하여 데이터를 변조할 수 있습니다. 예를 들어mongo --port 27017 use admin db.createUser( { user: "adminUser", pwd: "adminPass", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
공식 문서에 따르면 두 가지 배포 방법이 있다고 합니다. 며칠 전에 첫 번째 방법을 컴퓨터에 설치하지 못했기 때문에 두 번째 더 복잡한 방법을 사용했습니다.
mkdir yapi cd yapi git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录 cp vendors/config_example.json ./config.json //复制完成后请修改相关配置 cd vendors npm install --production --registry https://registry.npm.taobao.org npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置 node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
- 를 사용하여 pm2
npm i pm2 -g
로그인 후 복사 - yapi의 Vendors 디렉터리로 전환하고 pm2 start
를 실행합니다.
pm2 start server/app.js --watch
로그인 후 복사
正常的话,应该能正常访问到,默认接口是3000
요약이 시점에서 Yapi의 소스 코드를 자신의 인트라넷에 복제했습니다. 물론 이 과정에서 제가 직면한 주요 함정은 다음과 같습니다. mongdb 인증 함정: 예를 들어 인증 설정이 제대로 설정되지 않았거나, 구성 파일이 잘못 구성되었거나, 심지어 pm2가 yapi를 시작하지 못하는 경우도 있습니다. ① mongdb 인증 획득 실패 해결 방법: mongdb 구성을 확인하세요. yapi의 구성 파일이 올바르게 구성되어 있습니까? PM2가 yapi를 시작하지 못하고 계속 다시 시작되었습니다
해결책: 이전에 npm을 통해 열었던 서비스가 종료되지 않았는지 pm2 로그를 통해 확인하여 ctrl+c 이전의 서비스는 괜찮습니다처음 두 가지 문제 함정은 아닌 것 같습니다. 장애물일 뿐입니다
③구성된 메일함이 실패합니다
해결 방법: 메일함 구성이 잘못된 것 같습니다. 계속해서 알아보세요. 확실하지 않습니다. NetEase 메일박스에 문제가 있는 것 같습니다. config.json 파일을 수정한 후 install-server를 다시 실행하면 문제가 없을 것이라고 생각했습니다.->
mongdb의 yapi에 관리자 정보가 이미 존재해야 합니다. admin에 데이터가 없으면 삭제하세요. 너무 게으른 탓에 그냥 mongdb compass를 이용해 야피 전체를 삭제하고 도망쳤습니다!
不足之处欢迎拍砖指正!
yapi开启https访问
虽然对小白来说https然并卵,我还是想捣鼓一下试着通过https来访问我的yapi,首先证书我是有了,获取证书的方法也有千千万万种,我这里用的阿里云的免费证书,总之有证书的话应该能拿到证书文件如.pem、.key、.pfx之类文件。技术菜的我天真的以为还能开启3000端口的https访问,结果啪啪啪打脸打的很清脆,于是乎把https的端口设定成了8443。大概步骤如下:
- 获取证书文件(默认有证书并且能拿到.key和.pem文件或者.pfx文件)
- 上传证书(我直接放在app.js同级,根据个人喜好)
-
修改app.js 是基于koa的 不过我没有再引用koa-ssl,直接用的node的https方法的第一种
// 引入相关的服务和文件 const fs = require('fs'); const https = require('https'); const options = { key: fs.readFileSync(__dirname + '/server.key'), cert: fs.readFileSync(__dirname + '/server.pem') }; const port = 8443; //... //开启https端口 https.createServer(options, app.callback()).listen(port)
로그인 후 복사 - 成功开启https
-
同样还是踩了不少坑
- 文件径不对 not such file
解决:用__dirname - mac verify failure
解决: 用node https提供的第一种方法引入证书文件
- 文件径不对 not such file