4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

API開発が捗るツールたち(設計書編)

Posted at

背景

APIを開発するとき、色々なツールがありどれを使えばいいのか、
それぞれどのような特徴があるのかよくわからず迷いました。

いくつか実際に使ってみた感想をまとめました。

設計書編

Swagger

有名なオープンソースフレームワーク。Web APIを開発する人は結構知っている人も多いかと思います。
Swaggerにはいくつか種類があります。

  • Swagger Editor:Web上でプレビューをみながら修正することができる。
  • Swagger UI:指定のyaml, jsonファイルを元にAPIリファレンスをWeb上に表示することが可能。叩いてみたいAPIを選択し、Web上から実行することもできる。

お手軽にWebから利用することもできますが、Dockerイメージが転がっているのでローカルにSwaggerコンテナをDocker Hub(Swagger)立てて利用することもできます。使ってみたいけどセキュリティ的にWebから使うって抵抗あるな...という方や、チームで共有するときにSwaggerサーバを1台立てておくと非常に便利で良いと思います。

また、VsCodeをお使いの方は専用のプラグインがあります。
編集するだけであればプラグインで十分かと思います。
18ef3b63bd4c84a30f70697cc0f6db4b.png

Swagger UIでAPIリファレンスを眺めていると、「これそのまんまAPI定義書にしちゃいたいわ」なんて欲が出てきます。そんなときはReDocがおすすめです。

Swaggerで書いたAPI定義ファイルを良さげなhtmlファイルに変換してくれます。

そのほかにもSwaggerからドキュメントを生成するツールがいくつかあるようです。
こちら の記事にわかりやすくまとめてくれています。

Re:VIEW

こちらはAPIの設計書と直接的な関係はありませんが、設計書を書くことにおいて非常に便利なツールですので合わせてご紹介します。
API定義を内部で利用するだけであればReDocのようなツールから生成したHTMLファイルだけで良いですが、お客様によってはかっちりとしたAPI設計書の提出を求められる場合があります。

私の職場では設計書はwordで書き上げるのが一般的でしたが、面倒に感じることが多々あります...
そんなときにおすすめなのがRe:VIEWです。

Re:VIEW用のMarkDown形式で書いた文書を良さげにPDFやHTMLにして出力してくれます。

linterなどを利用することにより文書校正も可能です。
専用のDockerファイルもありますので、面倒な環境構築もすることなく利用が可能です。
(Re:VIEW for Docker)

Plant UML

こちらもAPIの設計書と直接的な関係はありません。
これを知ってるかどうかで設計書修正のコストをだいぶ下げることができる(かもしれない)と思います(plantUML公式)。

シーケンス図やクラス図をコードベースで書くことができます。
設計内容をコード化することでGitでの管理が可能となるのが大きな利点だと思います。

手書き風とか色を変えたりとか、見た目も少しいじることができます。
似たようなものにmermaid.jsというものがあります。

この辺は好みかと思います。

まとめ

  • API全体の構成やユースケースの設計:PlantUML, mermaid js
  • APIリファレンスやモックの作成:Swagger, (必要に応じて)ReDoc
  • お客様へ別途資料の提出が必要な場合:Re:VIEW

というような使い分けが良いかと思います。

次はクライアントツールやアプリについてまとめたいなぁと思います。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?