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.jsswaggerと簡単な関数を記載していきます。

長くなるし、コードを書くのがメインではないので省きます。

記述したら、デプロイします。

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件のコメント

コメントを残す

メールアドレスが公開されることはありません。