API仕様書はMarkdownで書いてhtml出力がベスト(API Blueprint)

「API仕様書を書くことになったけど、どうやって書けばいいかな?」
「API仕様書からそのまま記述したAPIのお試しみたいなこと出来ないかな?」

こんにちは、タカフです。

とある案件でAPI仕様書を書くことになりました。API仕様書って書くのが地味に面倒ですよね。

API仕様書は大抵誰かに見せる為に作るから体裁を整えないといけない

体裁を整えないといけない=Excel又はWord又はGoogleDocumentで書く

でも頻繁にAPI仕様書を書いてるわけではない場合テンプレートなんて無いから、体裁含め書いていかなければいけない。

これがツラい。

なので僕は、API仕様書を書くとしたらMarkdown形式で書いてhtml変換を圧倒的にオススメ致します

その理由と使い方を下記に述べていきます。

API仕様書をMarkdownで書くメリット

API仕様書をMarkdownで書くと以下のようなメリットが享受出来ます。

– Markdownで書くから体裁を一切気にする必要がない
– MarkdownならテキストファイルだからGithub等で安全にバージョン管理が出来る
– API仕様書をMarkdownで書くツールの中にはAPIモックサーバーを立ち上げる事もできる

順番に説明していきます。

Markdownで書くから体裁を一切気にする必要がない

Markdownで書くということは、その記述する内容に最大限に集中出来ます。中身はただのテキストファイルなので、タイピングするには最適です。
ExcelやWordで文書を書きだすと、どうしても都度スタイルを気にしてしまいます。

ビジネスパーソンの使える時間というのは常に限られているので(そういう認識を以って仕事をしたほうがいいですね。)、
本当にやるべき事以外の事に関しては労力を割く必要はありません。

MarkdownでAPI仕様書を書くことだけに集中しましょう。

MarkdownならテキストファイルだからGithub等で安全にバージョン管理が出来る

ExcelやWordもバージョン管理だけなら出来ますが、バージョン差分まで見ようとなると大変ですよね。

出来ないことも無いらしいですが、やはり面倒です。

それがMarkdownならテキストファイルなのでGit等のリポジトリに登録していると、どこをどう変えたかを明確に見渡すことが出来ます。

しかも、Git等のリポジトリに登録しておくメリットとしてはもう一つあります。

書いたAPI仕様書にすぐにアクセス出来る!!

開発案件に携わっていると、一番触るのはソースコードだと思います。

API仕様書がソースコードのルートに置かれてあると、今開いているエディタから気軽に開くことが出来ますよね。

このメリットが地味に大きいです。どこに置いたかわからない仕様書よりも開くスピードは絶対に早いと思います。
僕はこれがメンテナンス性アップにも直結すると思っています。

API仕様書をMarkdownで書くツールの中にはAPIモックサーバーを立ち上げる事もできる

本記事で紹介している書き方でAPI仕様書を書くと、それがそのままAPIのモックサーバーとして立ち上げることも出来ます

これはとても大切な事です。

API仕様書を書いているということは当然それを使って開発を進めることになりますが、
当然HTTPリクエストを投げてその結果を処理するのに、そのAPIの開発完了していないとなかなかその処理も実装しにくいですよね。

それが後ほど紹介するツールを使えば、モックサーバーが起動するので開発にも使用することが出来るのです。

これは開発を加速させます。

API仕様書をMarkdownで書くにはAPI Blueprintの書式で書こう

APIをMarkdownで書くには、API BlueprintSwagger というフォーマットがあります。

僕は、この2つなら API Blueprintを推します!

そもそも事の発端はAWS のAPI Gatewayで作業していたら、SwaggerというものでAPI仕様書を取り込んでそのまま動作させるみたいなことが出来ることを知って、Swaggerを使いだしたのですが、

何やらSwagger自体のフォーマットが出来ること多すぎて勉強コストが高い印象を受けてテンションが上がらずやめてしまいました。

そして、その後にAPI Blueprintを知って使ってみたら非常にシンプルだったので、API仕様書のMarkdownのフォーマットにはAPI Blueprintを採用した、という経緯でした。

要はAPIの仕様がわかってもらえればいいのだから、そんなところで苦労する必要はないのですよ。

API Blueprint の書き方

すみません色々なところに書いてあるので、ここでは割愛させていただきます。詳しい書き方は下記のページあたりが参考になります。

https://qiita.com/the40san/items/0f673a9fe8b72c4b0225

Markdown形式からhtml形式に変換

API BlueprintのフォーマットのMarkdownで書いたらhtmlに変換していきます。一番有名なaglioを使いましょう。

aglioをインストール

まずはaglioをnpmでインストールしましょう。

node.jsのインストールするには僕のこちらの記事が参考になります。

MacにNode.jsをインストールする方法

コード
 npm install -g aglio

今後よく使うので -g でグローバルインストールでもいいと思います。

MarkdownファイルをAPI仕様書のhtmlに変換する

aglioをインストールしたら、MarkdownからAPI仕様書として見ることが出来るhtmlに変換してみましょう。

使い方は簡単でコマンド一発です。

コード
aglio -i docs/src/api.md -o docs/html/api.html

これできれいにhtmlファイルを生成してくれます。

また、下記コマンドでリアルタイム変換も可能です。

コード
aglio -i api.md --server

このコマンドでローカルサーバーが起動して、大抵は以下のURLで確認出来ます。

http://127.0.0.1:3000/

これでmdファイルを編集して保存したら即htmlに反映されます。これがめちゃくちゃ便利ですね。

APIモックサーバーを作る

API BlueprintでしっかりとAPI仕様書を書くと、それをそのままAPIのモックサーバーとして動作させることも出来ます。

モックサーバーにはdrakovというツールを使います。

drakovをインストール

こちらもaglio同様にnpmでインストールします。こちらもグローバルにインストールしちゃいましょう。

コード
npm install -g drakov

drakovでモックサーバーを起動する

コード
drakov -f docs/src/api.md --watch

こちらも使い方は簡単です。書き連ねたAPI仕様書のmdファイルのパスを指して、 --watch オプションをつけるだけです。

程なくしてモックサーバーが起動して、mdファイルで記述したAPIのパスがローカルで叩けるようになります。

まとめ

本日はAPI仕様書を記述するのに便利なツールの紹介でした。

エンジニアの仕事はプログラムを書くだけでありませんね。ドキュメントも立派なお仕事であり、リソースを考えながら仕事しなくてはいけません。

こういうツールを知ってると知ってないではその後の開発工数に多大な影響を与えるので、存分に活用していった方が結果的に幸せになれますね。

現場からは以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です