REST API構築に役立つツールまとめ

こんばんは、本日はREST API開発に便利なツール・フレームワークをご紹介します。開発時に役立つと幸いです。
それでは始めます。

Swagger

REST APIを構築するためのオープンソースなフレームワーク
OpenAPI Specification(OAS:REST APIを定義するフォーマット)に基づいて構築される

Swagger Editor

Swaggerを書くためのエディタ

Swagger UI

サーバーにインストールして、ドキュメントを静的コンテンツとして展開する

Swagger Codepen

Prism同様、サーバー再度のモックを生成できる

VSCodeの拡張機能も利用可能

OpenAPI (Swagger) Editor

OpenAPIの拡張。様々な機能を含む(SwaggerUI, ReDoc, preview, IntelliSense, Linting…)

Swagger Viewer

「Shift + Alt + P」でSwagger UIを開ける

VSCode拡張機能のイメージ

Stoplight Studio

OASをGUIで組み立てることができるプラットフォーム。OASの記法がわからなくても、簡単に作成できる

以下画像のように4つのタブが存在する

  • Form:OASの定義をGUI上で行う部分

  • Code:FormがJSONまたはYAMLのコードとして表示される

  • Preview:画像赤枠のようにFormで定義したもののプレビューが確認できる(Swagger UIに近い)

  • Mocks:後述のPrismと連携してMockの情報やログを確認できる

Stoplight Studioのイメージ図

Spectral

Stoplight Studio上で警告、エラーのルール設定ができる

Spectralのイメージ図

ルール設定はGUIで簡単に設定できる
Stoplight Studioで新規からStyleGuideを選択すると、spectral.jsonが生成される。以下画像のようにルールセットが用意されており、必要なルールを選択するとJSONが生成される。

Spectral Rulesetのイメージ図

ルールの詳細設定はこちらを参照

Prism

mockサーバーを立てて、OpenAPIのレスポンス(example)を検証することができる。

  • 導入(Prism-CLI)

    • Nodeのv12以上が必要

    • npm i -g @stoplight/prism-cli でPrism-CLIをインストール

  • 利用

    • prism mock sample.json --port 3000 でモックサーバーを起動
      (sample.jsonはテスト対象のSwaggerファイル名に置き換える)

  • 3000番ポートあてにリスクエストを送信する

  • ステータスコードを固定したい場合、リクエストヘッダーにPrefer: code=200のようにすることで可能

Redoc

OpenAPIから仕様を静的ファイル(HTML)として生成できる。

  • 導入

    • npm i -g redoc-cli

  • 利用

    • redoc-cli bundle sample.jsonでsample.jsonを基に性的ファイルを生成
      画像の例では--options.theme.colors.primary.main=orangeを付与した

Redocで出力した静的ファイル

Dredd

OASのテストツール。以下の制約がある

  1. デフォルトは1リクエスト1レスポンスのみしか定義できない

  2. OpenAPIからレスポンスを変更するには、フックファイルが必要

  3. パスパラメータを定義するとエラーになる

導入: npm i -g dredd

Postman

Dreddと似た機能を提供している
利用法:GUI上でリクエストを組み立て、レスポンスを確認