swaggerのオンライン勉強会に参加したので、swaggerの設定を反映したモックサーバを立ててみようかと思います。
参加した勉強会は「サーバーサイドエンジニアから学ぶ”Swagger入門”」です。swaggerの書き方とか使い方がわかりやすくてよかったです。
使用する技術
インフラ:firebase(CloudFunction)
言語:JavaScript(node.js)
使用するライブラリ:swagger-jsdoc, firebase-tools
初期設定
まずはプロジェクト用のディレクトリを作ってfirebaseを設定します。(firebaseでログインしていない場合はログインしてください)
firebaseを初期化する際はプロジェクト名など聞かれますが、そこは自分の好みにしてください。
mkdir swagger cd swagger firebase init functions
次に、swaggerを使用するのに必要なライブラリをインストールします。
cd functions npm install --save swagger-jsdoc firebase-tools
そうしましたら、funtions/index.jsにswaggerと簡単な関数を記載していきます。
長くなるし、コードを書くのがメインではないので省きます。
記述したら、デプロイします。
cd project npm install --save swagger-jsdoc firebase-tools
確認のため、コンソールに表示されたプロジェクトのURLにアクセスして、左側の開発の下にあるFunctionsを開きます。
できた。
確認のため、curlで叩いてみます。
curl -X GET "https://us-central1-snowcat-swagger.cloudfunctions.net/getHealthcare?weight=68&height=177" -H "accept: application/json"
おっけー。
gitにコミットしてgithubに上げます。
git init git add -A git commit -m 'Initialize swagger project' git remote add origin https://github.com/snowcat-jp/swagger.git git push -u origin master
ついでにCIも設定しましょう。いちいちデプロイするのも面倒ですし。
CircleCIの設定
自動で最新の状態にしたいので、CI環境を整えます。
今回はCircleCIを使います。各種初期設定は省きます。
まず、CircleCIにログインしてgithubのプロジェクトを設定します。
次に、環境変数としてFIREBASE_TOKENを設定します。
右上の設定を押下したあと、左側のEnvironment Variablesから設定します。
FIREBASE_TOKENの確認の仕方がわからなかったので以下のコマンドで際ログインして確認しました。
firebase login:ci
1/から始まる奴がFIREBASE_TOKENです。
設定が完了するとこんな状態です。
次に、プロジェクトにCircleCIの設定ファイルを作ります。
mkdir .circleci touch .circleci/config.yml
ファイルを記述します。今回はこんな感じで。
version: 2 jobs: deploy_dev: docker: - image: circleci/node:14.1 steps: - checkout - run: name: npm install command: cd functions && npm install - run: name: deploy to Firebase Hosting command: ./functions/node_modules/.bin/firebase deploy --token=$FIREBASE_TOKEN --only functions workflows: version: 2 deploy_dev: jobs: - deploy_dev: filters: branches: only: master # masterブランチのみ実行
完了したら、githubに上げます。
git add .circleci/config.yml git commit -m "setting circleci" git push -u origin master
何度か失敗しましたが、調整うまくいきましたw
CircleCIの設定はSPAとかでも流用できますね。
今回のソースコードはこちら
参考
Circle CIからFirebase Hostingに自動ビルド&デプロイする
0件のコメント