革命のブログ

フレボワークスの社員がブログを通じて情報発信します。

簡単3ステップで完了!効率的なWebAPI仕様書作成を導入する方法

はじめに

どうも小野です。WebAPI仕様書の作成はどのようにしていますか?今回紹介するツール等がない時代はExcelを当たり前のように使っていたかもしれません。 Excelの場合、ファイルのバージョン管理に苦労することが多いため、効率がいいとは言えません。 そこで、今回はタイトルにもある通り、簡単3ステップでWebAPI仕様書を作成する方法をご紹介します。

前提

  • Githubアカウントを登録済みであること
  • Netlifyアカウントを登録済みであること
  • Node.jsがインストールされていること

ステップ1 Githubセットアップ

リポジトリを新規作成します。

ステップ2 Netlifyセットアップ

Netlifyは静的サイトを公開できるホスティングサービスです。

ここでは公開するサイトを新規作成します。

ステップ3 仕様書作成

ステップ1で作成したリポジトリからソースをダウンロードし、初期設定を行います。

git clone git@github.com:frevo-works/apisample.git
cd apisample
npm init
npm i redoc-cli

redoc-cli は作成した YAML を HTML に変換してくれるツールで、Netlifyで公開するために必要です。 redocly.com

package.json を編集します。

// (省略)
"scripts": {
  "build": "redoc-cli bundle swagger.yml -o dist/index.html", // 追加
  "test": "echo \"Error: no test specified\" && exit 1"
},
// (省略)

swagger.yml を作成します。

openapi: "3.0.2"
info:
  title: SampleAPI
  version: "1.0"
paths:
  /users:
    get:
      description: ユーザ一覧取得
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: ユーザID
                        name:
                          type: string
                          description: 氏名
                        email:
                          type: string
                          description: メールアドレス

以下のコマンドを実行して、仕様書を出力してみます。

npm run build

ビルドが完了すると、dist フォルダに index.html が出力されているのでブラウザで開きます。

正しく表示されたら、リモートリポジトリにプッシュします。

git add -A
git commit -m "first commit"
git push origin main

動作確認

Netlify を開き、以下のような状態になったら、表示されている URL をクリックします。すると、作成された API 仕様書が確認できます。

もし、閲覧制御等で API 仕様書のページに Basic 認証をかけたい場合、Netlify の有料プランに加入すると利用可能になります。

www.netlify.com

おまけ

効率よくYAMLファイルを編集する方法として2つご紹介します。

リアルタイムに確認する方法

編集中の内容をリアルタイムで確認できる方法として、Swagger Editor と、VSCode+Swagger のプラグインを利用する方法があります。 Swagger Editor は以下の リンク から起動することができます。

editor.swagger.io

ただし、編集はブラウザ上で行うので、編集後はローカルのファイルに上書きする必要があります。 ローカルで Editor を起動する Docker もあるようですが、今回は後者の方法をご紹介します。

marketplace.visualstudio.com

GUI で編集する方法

YAML ファイルを触りたくない人向けのツールをご紹介します。 このツールはGUI 上で設定、入力していくと最終的に YAML ファイルが出来上がる仕組みです。

stoplight.io

おわりに

いかがでしたか?ツール等の導入には多少手間は必要ですが、Excelのひな型作成と考えればそこまでのコストはかからないと思います。 効率よくメンテンナンスを行うためにぜひ導入してみてください。 今回は紹介していませんが、仕様書を更新した際にSlackへ通知することも可能なので、興味がある方は調べてみてください。