序文
ここ数日で、私は会社の 3 か月にわたるデモ バージョン プロジェクトをついに完了しました。この期間中、私は API について会社のバックエンドと数えきれないほどの議論をしました。私のインターフェースには問題ありませんが、リクエストの方法が間違っています。 '、'要求したパラメータは間違っているに違いありません'... このような問題は過去 3 か月間ずっと続いています。単に私たちが適切なインターフェイス管理の習慣を持たず、問題のないツールが多数使用されていなかったためです。インターフェイスの定義は非常にランダムであり、基本的には口頭で伝えられます。したがって、まず YApi インターフェイス管理プラットフォームを使用する必要があると思います。さらに、Zhang Xinxu 氏もインターフェイス管理を呼びかけており、フロントエンドでもツールを使用する必要があります。生産性を解放し、効率を向上させます!
ノードのインストール
Yapi のインストールはノードに依存する必要があるため、centos 環境にノードをインストールするさまざまな方法を Google で検索すると、数千もの方法があります。しかし、やはり罠を踏んでしまいました。なぜ 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
ログイン後にコピーnvm ls-remote
ログイン後にコピー - #インストール必要なバージョン 必要な nodejs ( 7.6)
nvm install 10.2.1
ログイン後にコピー - mongdb をインストールしますYapi は mongodb (2.6、理論的にはリモート mlab を設定し、ここで 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
ログイン後にコピー - Start 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" } ] } )
## Deploy yapi 公式ドキュメントによると、2 つのデプロイ方法があります。数日前に最初の方法をコンピューターに使用しました。最初の方法はインストールに失敗したため、2 番目のより複雑な方法を使用しました。
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配置的端口},初次运行会有个编译的过程,请耐心等候
現時点では、それは一時的に正常に展開されただけで、yapi プロセスはpm2 はここで使用されます
npm i pm2 -g
- yapi のベンダー ディレクトリに切り替えて、pm2 start
を実行します
pm2 start server/app.js --watch
ログイン後にコピー -
#
正常的话,应该能正常访问到,默认接口是3000
ログイン後にコピー
概要
この時点で、yapi のソース コードを自分のイントラネット. もちろん、プロセス中にはまだ多くの落とし穴に遭遇するでしょう. I 遭遇する主な落とし穴は、認証設定の失敗、構成ファイルの構成の誤り、さらには pm2 による Yapi の起動の失敗など、mongdb 認証の落とし穴です。もっと試して、実践的な作業を増やしてください。本当に自分で解決できない場合は、専門家にアドバイスを求めてください。① mongdb 認証の取得に失敗しました
#解決策: mongdb 構成が正しいかどうか、認証設定が成功したかどうか、yapi 構成ファイルが正しく構成されているかどうかを確認してください② PM2 が yapi の起動に失敗し、再起動を繰り返しました 解決策: pm2 ログを使用して、以前に npm を通じて開始されたサービスが終了してポート占有が発生していないことを確認します。ctrl c## の前にサービスを使用してください。最初の 2 つの問題はないようです落とし穴といっても、それは単なる障害です。③構成されたメールボックスが失敗します
解決策: メールボックスの構成が間違っている可能性があります。戻ってきてください。それからマイニングを続けました
不足之处欢迎拍砖指正!
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