YApi — это эффективная, простая в использовании и мощная платформа управления API, предназначенная для предоставления более элегантных услуг управления интерфейсами для разработчиков, продуктов и тестировщиков. Он может помочь разработчикам легко создавать, публиковать и поддерживать API-интерфейсы, а также предоставляет пользователям превосходные интерактивные возможности. Разработчики могут управлять интерфейсами, просто используя инструменты записи данных интерфейса, предоставляемые платформой, и простые операции щелчка мышью.
Github: https://github.com/YMFE/yapi
Официальная документация: https://hellosean1025.github.io/yapi/documents/index.html.
Поскольку официальный YAPI прекратил обслуживание, прямая установка сообщит об ошибке. Вы можете использовать другой поддерживаемый склад: https://github.com/gozeon/yapii.
В процессе установки вам необходимо установить инструменты npm и pm2 для управления приложениями.,И вам необходимо установить MongoDB в качестве базы данных API.,Необходимо изменить следующий скриптmongodb_xxx
конфигурация базы данных。
После завершения установки откройте http://localhost:9090/, чтобы открыть страницу управления. Бэкэнд может управлять жизненным циклом сервиса через systemctl.
#!/bin/bash
# Нужно открыть порт
# 9090: Веб-интерфейс управления API
if ! command -v npm &> /dev/null; then
yum install -y npm
npm install -g pm2
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
# Соответствие версий между узлом и npm: https://nodejs.org/zh-cn/about/previous-releases
nvm install v14.21.3 # npm v6.14.18
npm install -g node-gyp@v3.6.3
sed -i 's/rU/r/g' /usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py
npm install fs-extra
fi
app_name="yapii"
app_entry="server/app.js"
install_dir=/opt/$app_name
log_file=$install_dir/log/yapi.log
mongodb_addr="xxx"
mongodb_db="yapi"
mongodb_username="yapi"
mongodb_password="xxx"
if [ ! -d "$install_dir" ]; then
wget https://github.com/gozeon/yapii/archive/refs/heads/master.zip
unzip master.zip -d $install_dir
cd $install_dir
mv yapii-master/* .
rm -rf yapii-master
npm install fs-extra
npm install --production --prefix $install_dir
cat > $install_dir/config.json<<EOF
{
"port": "9090",
"timeout":120000,
"closeRegister":false,
"db": {
"servername": "$mongodb_addr",
"DATABASE": "$mongodb_db",
"user": "$mongodb_username",
"pass": "$mongodb_password",
"port": 27017
},
"plugins": []
}
EOF
sed -i "s/app.listen(yapi.WEBCONFIG.port);/app.listen(yapi.WEBCONFIG.port, '0.0.0.0');/" $app_entry
# pm2 start $install_dir/$app_entry --name $app_name
fi
# создавать YAPI systemd служебные файлы
cat > /etc/systemd/system/yapi.service <<EOF
[Unit]
Description=YAPI Server
Documentation=https://github.com/YMFE/yapi
Requires=network.target
After=network.target
[Service]
Type=forking
ExecStartPre=/bin/mkdir -p /var/run
ExecStart=/usr/local/bin/pm2 start $install_dir/$app_entry --name $app_name --log $log_file
ExecStartPost=/bin/bash -c 'echo \$MAINPID > /var/run/yapi.pid'
ExecReload=/usr/local/bin/pm2 reload $app_name
ExecStop=/usr/local/bin/pm2 stop $app_name
ExecStopPost=/bin/rm -f /var/run/yapi.pid
Restart=on-failure
RestartSec=5
Environment=NODE_ENV=production
Environment=HOME=/home/$(whoami)
[Install]
WantedBy=multi-user.target
EOF
cat > /etc/logrotate.d/yapi<<EOF
$log_file {
daily
rotate 30
compress
dateext
dateformat -%Y-%m-%d
missingok
notifempty
postrotate
# отправлять HUP Сигнал для уведомления приложения о необходимости повторного открытия файла журнала.
/bin/kill -HUP \$(cat /var/run/yapi.pid 2>/dev/null) 2>/dev/null || true
endscript
}
EOF
# перезагрузить systemd Настроить и запустить службу
sudo systemctl daemon-reload
sudo systemctl enable yapi
sudo systemctl restart yapi
sudo systemctl status yapi
Для запуска старой версии API необходимо установить плагин для браузера Chrome. После скачивания разархивируйте его и перетащите в центр плагинов Chrome.
Адрес загрузки плагина для браузера: https://github.com/YMFE/cross-request/archive/master.zip.
Для запуска новой версии отладки не требуется никакого плагина, но время ожидания составляет всего 800 мс. Если оно превысит значение, будет сообщено об ошибке. Вам необходимо изменить время ожидания в исходном коде.