YAPI 소개
YAPI는 오픈소스 기반의 API 관리 플랫폼으로, 프로젝트 관리, API 문서화, Mock 서버 설정, 그리고 API 테스트 등을 지원합니다. 사용자 친화적인 인터페이스와 직관적인 기능 덕분에 많은 개발자들에게 사랑받고 있습니다.
- 공식 사이트: http://yapi.smart-xwork.cn/
- 공식 문서: https://hellosean1025.github.io/yapi/
YAPI 로컬 설치 방법
MongoDB 설치 및 실행
MongoDB는 YAPI 데이터베이스 역할을 합니다. 각 운영체제별 설치 방법은 아래와 같습니다.
MacOS에서 MongoDB 설치
sudo chown -R "$USER":admin /usr/local
brew tap mongodb/brew
brew install mongodb-community
Windows에서 MongoDB 설치
Windows MongoDB 설치 가이드 참조
Linux에서 MongoDB 설치
Linux MongoDB 설치 가이드 참조
Node.js 설치
YAPI는 Node.js를 필요로 하며, MacOS에서는 다음과 같이 설치할 수 있습니다.
brew install node
다른 운영체제의 경우 공식 사이트에서 다운로드하여 설치하세요.
국내 NPM 소스 설정
npm install -g cnpm --registry=https://registry.npm.taobao.org
yapi-cli 설치
npm install -g yapi-cli
YAPI 서비스 시작
yapi server
Docker를 이용한 YAPI 설치
Docker를 사용하면 간편하게 YAPI를 구동할 수 있습니다.
MongoDB 컨테이너 생성
docker run -d --name mongo-yapi mongo
YAPI 이미지 가져오기
docker pull registry.cn-hangzhou.aliyuncs.com/anoy/yapi
데이터베이스 초기화
docker run -it --rm \
--link mongo-yapi:mongo \
--entrypoint npm \
--workdir /api/vendors \
registry.cn-hangzhou.aliyuncs.com/anoy/yapi \
run install-server
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 사용 방법
브라우저에서 다음 주소로 접속해보세요.
Docker 배포 시 기본 계정 정보는 다음과 같습니다.
- 이메일: admin@admin.com
- 비밀번호: ymfe.org
주요 오류 해결 방법
데이터베이스 초기화 중 발생하는 경고 메시지
오류 메시지:
Error: (node:90198) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated...
해결 방법:
~/my-yapi/vendors/exts/server/utils.js 파일의 22번째 줄에 다음 옵션을 추가하세요.
let options = {useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true};
서비스 재시작:
cd ~/my-yapi
node vendors/server/app.js
관리자 계정 초기화 실패
MongoDB의 기존 관리자 데이터를 삭제하고 다시 초기화하세요.
Mac OS에서는 NoSQL Booster와 같은 도구를 사용하여 데이터를 삭제할 수 있습니다.
Node.js 버전 관련 문제
YAPI는 Node.js 15 미만 버전을 권장합니다. 필요한 경우 nvm을 통해 버전을 조정하세요.
brew install nvm
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo '[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"' >> ~/.zshrc
source ~/.zshrc
nvm install 10
nvm use 10.24.1
Python 명령어 누락 문제
node-gyp rebuild 명령 수행 중 Python 명령어가 없다는 오류가 발생한다면 다음 단계를 따르세요.
brew install pyenv
pyenv install 3.9.6
pyenv global 3.9.6
.zshrc 파일에 다음 내용을 추가하세요.
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
설정 적용:
source ~/.zshrc
서버 시작 후 yapi.demo.qunar.com 오류
오류 메시지:
Error: getaddrinfo ENOTFOUND yapi.demo.qunar.com
해결 방법:
server.js 파일에서 로그 전송 부분을 주석 처리하세요.
// const logData = await fetch('http://yapi.demo.qunar.com/logs', { method: 'POST', body });
참고 링크: GitHub 이슈 #2180