Redocly CLIに関する包括的なチュートリアルへようこそ!Redocly CLIは、OpenAPIおよびSwagger定義のための強力なオールインワンコマンドラインツールです。APIライフサイクル全体を通して、API記述の構築、管理、品質チェックを支援します。開発者、テクニカルライター、APIプロダクトマネージャーのいずれであっても、このツールはあなたにとって役立つものがあります。
このチュートリアルは、Redocly CLIを深く掘り下げ、初心者から自信を持って使えるユーザーになることを目指しています。インストールから、カスタムリンティングルールやCI/CD統合のような高度な機能まで、すべてをカバーします。このチュートリアルの終わりまでに、Redocly CLIを日常のワークフローに統合し、APIの品質とドキュメントを向上させることができるようになります。
開発チームが最大限の生産性で共同作業できる、統合されたオールインワンプラットフォームが必要ですか?
Apidogはあなたのすべての要求に応え、Postmanをはるかに手頃な価格で置き換えます!
Redocly CLIとは?
公式ドキュメントに記載されているように、Redocly CLIはあなたの「オールインワンOpenAPIユーティリティ」です。OpenAPI 3.1、3.0、2.0(レガシーSwagger)、AsyncAPIなどをサポートしています。以下の目的であなたを支援するように設計されています。
- APIガバナンス:強力で設定可能なリンティングにより、API設計標準と一貫性を強制します。
- APIドキュメント:Redocを使用して、美しくインタラクティブなAPIリファレンスドキュメントを生成します。
- ワークフローの改善:複数のファイルに分かれたAPI定義をバンドルし、大きな定義をより小さなファイルに分割し、APIに関する貴重な統計情報を取得します。
このツールは、パフォーマンスとユーザーエクスペリエンスを念頭に置いて構築されており、高速な実行と人間が読みやすいエラーメッセージを提供します。
Redocly CLIを使用する理由
今日のAPIファーストの世界では、高品質なAPI定義を維持することが不可欠です。Redocly CLIは、以下の方法でこれを達成するのに役立ちます。
- 品質チェックの自動化:リンティング機能は、API定義をルールセットに対してチェックするプロセスを自動化し、一貫性を確保し、一般的なエラーを防ぎます。
- コラボレーションの改善:大きなAPI定義を複数のファイルに分割することで、チームがAPIの異なる部分を同時に作業しやすくなります。
bundle
コマンドはすべてを元に戻します。 - 開発者エクスペリエンスの向上:
build-docs
によって生成される高品質でインタラクティブなドキュメントは、開発者がAPIを理解し、利用しやすくします。 - ツールチェーンとの統合:Redocly CLIはCI/CDパイプラインに簡単に統合でき、API品質を自動化されたワークフローの一部にできます。
このチュートリアルで扱う内容
このチュートリアルは、Redocly CLIを習得するためのステップバイステップガイドを提供するように構成されています。扱う内容は以下のとおりです。
- 第1章:はじめに:前提条件を説明し、Redocly CLIのインストール方法と実行方法を示します。
- 第2章:コアコマンドと機能:この章では、最も重要なコマンドである
lint
、bundle
、split
、build-docs
、stats
について深く掘り下げます。 - 第3章:高度なトピック:
redocly.yaml
設定ファイルと、Redocly CLIをGitHub Actionsワークフローに統合する方法を探求します。 - 第4章:実践的な例:複数のファイルに分かれたAPI定義の作成からドキュメントの生成まで、完全な実際のワークフローを順を追って説明します。
さあ、始めましょう!
第1章:Redocly CLIをはじめよう
この章では、Redocly CLIの使用の最初のステップとして、インストールから最初のコマンドの実行までをガイドします。
前提条件
始める前に、システムに以下がインストールされていることを確認してください。
- Node.jsとnpm:Redocly CLIはNode.jsアプリケーションです。Node.js(バージョン22.12.0以上)とnpm(バージョン10.9.2以上)がインストールされている必要があります。ターミナルで
node -v
とnpm -v
を実行することでバージョンを確認できます。
インストール
Redocly CLIをインストールして使用するにはいくつかのオプションがあります。あなたのニーズに最適なものを選択してください。
npx
の使用(クイック使用に推奨)
グローバルインストールなしでRedocly CLIを試してみたい場合は、npmパッケージランナーであるnpx
を使用できます。このコマンドは、Redocly CLIの最新バージョンをダウンロードして実行します。
npx @redocly/cli@latest --version
任意のredocly
コマンドを使用するには、npx @redocly/cli@latest
を先頭に付けます。例:
npx @redocly/cli@latest lint openapi.yaml
これは、CI/CD環境でRedocly CLIを使用する場合や、システムをグローバルパッケージで煩雑にしたくない場合に最適な方法です。
npm
によるグローバルインストール
定期的に使用する場合は、グローバルインストールの方が便利です。これにより、redocly
コマンドがターミナルで直接利用可能になります。
npm install -g @redocly/cli@latest
インストール後、バージョンを確認することで検証できます。
redocly --version
これで、次のようにコマンドを実行できます。
redocly lint openapi.yaml
Dockerの使用
Dockerを使用したい場合は、Redoclyが事前に構築されたDockerイメージを提供しています。これは、ツールをローカル環境から隔離するのに役立ちます。
まず、Docker Hubからイメージをプルします。
docker pull redocly/cli
コマンドを実行するには、現在の作業ディレクトリ(APIファイルがある場所)をボリュームとしてDockerコンテナにマウントする必要があります。
docker run --rm -v $PWD:/spec redocly/cli lint /spec/openapi.yaml
このコマンドでは、$PWD
は現在のディレクトリを指し、コンテナ内の/spec
ディレクトリにマウントされます。その後、/spec
パスを使用してファイルを参照する必要があります。
基本的なコマンド構造
Redocly CLIを使用するための基本的な構造は次のとおりです。
redocly [command] [arguments] [options]
command
: 実行したいアクション(例:lint
、bundle
)。arguments
: 通常、ルートAPI定義ファイルへのパス(例:openapi.yaml
)。options
: コマンドの動作をカスタマイズするためのフラグ(例:-output
、-format
)。
特定のコマンドのヘルプは、--help
オプションを使用することでいつでも取得できます。
redocly lint --help
Redocly CLIがインストールされ、基本的なコマンド構造を理解できたので、その強力な機能を探索に進みましょう。
第2章:コアコマンドと機能
この章では、Redocly CLIのコアコマンドを扱います。API定義のリンティング、管理、ドキュメント化、分析方法を探求します。この章の例では、シンプルなopenapi.yaml
ファイルを使用します。
以下の内容でopenapi.yaml
という名前のファイルを作成しましょう。
openapi: 3.0.0
info:
title: Simple Pet Store API
version: 1.0.0
description: A simple API to manage pets.
servers:
- url: <http://localhost:8080/api>
paths:
/pets:
get:
summary: List all pets
operationId: listPets
responses:
'200':
description: An array of pets.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
components:
schemas:
Pet:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
セクション2.1:API記述のリンティング(lint
)
APIリンティングは、API定義ファイルの一貫性、正確性、スタイルをチェックするプロセスです。API設計ガイドラインを強制し、本番環境に到達する前に潜在的な問題を検出するのに役立ちます。
基本的な使用法
lint
コマンドは、API定義をルールセットに対してチェックするために使用されます。
redocly lint openapi.yaml
デフォルトでは、redocly lint
はrecommended
ルールセットを使用します。openapi.yaml
に問題がある場合、出力はそれらを詳細に示します。私たちの例のファイルの場合、出力は次のようになります。
validating openapi.yaml...
openapi.yaml: validated in 58ms
Woohoo! Your API description is valid. 🎉
ルールの設定
Redocly CLIには、設定可能な3つの組み込みルールセットが付属しています。
minimal
: 主に仕様の有効性をチェックする小規模なルールセット。recommended
: 一般的なベストプラクティスを強制する、より包括的なルールセット。これがデフォルトです。recommended-strict
: 推奨ルールセットのより厳格なバージョン。
--extends
オプションを使用してルールセットを指定できます。
redocly lint openapi.yaml --extends=minimal
redocly.yaml
設定ファイルで独自のカスタムルールセットを作成することもできます。これについては第3章で説明します。
出力フォーマット
lint
コマンドは、--format
オプションを使用してさまざまな出力フォーマットをサポートしており、これは他のツールとの統合に非常に役立ちます。
codeframe
(デフォルト):各問題のコードコンテキストを表示します。stylish
:よりコンパクトで人間が読みやすいフォーマット。json
:すべての問題をJSONオブジェクトとして出力します。機械処理に最適です。checkstyle
:Checkstyleと互換性のあるXMLフォーマット。github-actions
:GitHub Actionsのアノテーションと統合するフォーマット。markdown
:結果のMarkdownテーブル。レポートに最適です。
stylish
フォーマットの使用例:
redocly lint openapi.yaml --format=stylish
問題の無視
特定の問題を無視する必要がある場合があります。エラーや警告を抑制するために、.redocly.lint-ignore.yaml
ファイルを生成できます。
redocly lint openapi.yaml --generate-ignore-file
このコマンドは無視ファイルを作成します。再度lint
を実行すると、このファイルにリストされている問題は無視されます。これにより、リンティングプロセスをきめ細かく制御できます。
セクション2.2:bundle
とsplit
によるAPI記述の管理
APIが成長するにつれて、単一のモノリシックなOpenAPIファイルを管理するのは煩雑になります。Redocly CLIは、これを支援するためにsplit
とbundle
という2つのコマンドを提供しています。
大きなOpenAPIファイルの分割(split
)
split
コマンドを使用すると、大きなAPI定義ファイルを、より管理しやすい複数のファイル構造に分割できます。コンポーネント、パス、例を個別のファイルやフォルダに抽出します。
openapi.yaml
を分割しましょう。
redocly split openapi.yaml --outDir=split-api
このコマンドは、以下の構造を持つsplit-api
ディレクトリを作成します。
split-api/
├── components/
│ └── schemas/
│ └── Pet.yaml
├── paths/
│ └── pets.yaml
└── openapi.yaml
split-api
内の新しいopenapi.yaml
は、外部ファイルへのリンクに$ref
を使用するようになります。
# split-api/openapi.yaml
openapi: 3.0.0
info:
title: Simple Pet Store API
# ...
paths:
/pets:
$ref: ./paths/pets.yaml
components:
schemas:
Pet:
$ref: ./components/schemas/Pet.yaml
複数のファイルのバンドル(bundle
)
bundle
コマンドはsplit
の逆を行います。ルートAPI定義ファイルを受け取り、すべてのローカルな$ref
を解決して、単一の自己完結型ファイルを作成します。これは、複数のファイル定義をサポートしないツールに役立ちます。
分割したAPIを単一のファイルにバンドルし直しましょう。
redocly bundle split-api/openapi.yaml --output bundled-api.yaml
bundled-api.yaml
は、元のopenapi.yaml
と同じ内容になります。
デリファレンシング
bundle
コマンドは、すべての$ref
(リモートのものを含む)が解決され、その内容に置き換えられた完全にデリファレンスされたファイルを作成することもできます。
redocly bundle split-api/openapi.yaml --output dereferenced-api.yaml --dereferenced
これは便利ですが、ファイルが非常に大きくなる可能性があり、循環参照がJSON出力で問題を引き起こす可能性があることに注意してください。
セクション2.3:APIドキュメントの生成(build-docs
)
Redocly CLIの最も強力な機能の1つは、オープンソースのRedocエンジンを使用して、美しくインタラクティブなAPIリファレンスドキュメントを生成する機能です。
基本的な使用法
ドキュメントを生成するには、build-docs
コマンドを使用します。
redocly build-docs openapi.yaml
これにより、現在のディレクトリにredoc-static.html
ファイルが作成されます。ブラウザで開いてドキュメントを確認してください。
-o
または--output
オプションを使用して、別の出力ファイルを指定できます。
redocly build-docs openapi.yaml -o my-api-docs.html
出力のカスタマイズ
--theme.openapi
オプションを使用して、ドキュメントの外観をカスタマイズできます。これにより、色、フォントを変更したり、検索バーなどのUIの一部を無効にしたりできます。
例えば、検索バーを無効にするには:
redocly build-docs openapi.yaml --theme.openapi.disableSearch
利用可能なすべてのテーマオプションは、公式のRedoclyドキュメントで見つけることができます。
さらに細かく制御したい場合は、独自のHandlebarsテンプレートを提供してドキュメントをレンダリングできます。これは、HTML出力の完全なカスタマイズを可能にする高度な機能です。
セクション2.4:API統計情報の取得(stats
)
stats
コマンドは、パス、操作、スキーマの数など、API定義に関する有用なメトリックを提供します。
統計情報の取得方法
APIの統計情報を取得するには、単に以下を実行します。
redocly stats openapi.yaml
デフォルトの出力はstylish
フォーマットです。
Document: openapi.yaml stats:
🚗 References: 1
📦 External Documents: 0
📈 Schemas: 1
👉 Parameters: 0
🔗 Links: 0
🔀 Path Items: 1
👷 Operations: 1
🔖 Tags: 0
openapi.yaml: stats processed in 22ms
異なるフォーマット
lint
コマンドと同様に、stats
は--format
オプションを使用して異なる出力フォーマットをサポートしています。json
およびmarkdown
フォーマットは特に便利です。
-format=json
:
redocly stats openapi.yaml --format=json
これは、統計情報を他のツールやダッシュボードに取り込むのに最適です。
-format=markdown
:
redocly stats openapi.yaml --format=markdown
これはMarkdownテーブルを生成し、レポートやGitHub Actionsのサマリーでの使用に最適です。これについては次の章で説明します。
第3章:高度なトピック
この章では、強力な設定ファイルやCI/CDパイプラインとの統合など、Redocly CLIのより高度な機能について深く掘り下げます。
設定ファイル(redocly.yaml
)
Redocly CLIは完全にコマンドラインから使用できますが、redocly.yaml
設定ファイルを使用すると、設定を1か所に保存でき、コマンドを短くし、設定を再利用可能にできます。
プロジェクトのルートにredocly.yaml
ファイルを作成しましょう。
# redocly.yaml
# This is a sample configuration file.
# For a full list of options, see the Redocly documentation.
apis:
main:
root: openapi.yaml
lint:
extends:
- recommended
rules:
# You can customize rules here.
# For example, make sure all operations have a summary.
operation-summary: error
設定ファイルの構造
apis
: このセクションでは、API定義のエイリアスを定義できます。上記の例では、openapi.yaml
ファイルにmain
というエイリアスを作成しました。lint
: このセクションには、lint
コマンドの設定が含まれています。拡張するルールセットを指定したり、個々のルールをカスタマイズしたりできます。- その他のセクション:APIを変換するためのデコレーターなど、Redoclyの他の部分も設定できます。
APIエイリアスの使用
apis
セクションを設定すると、コマンドでファイルパスの代わりにエイリアスmain
を使用できるようになります。
redocly lint main
redocly stats main
redocly build-docs main
これは、プロジェクトに複数のAPIがある場合に特に便利です。引数なしでredocly lint
を実行すると、apis
セクションで定義されているすべてのAPIがリンティングされます。
継続的インテグレーション(CI)
Redocly CLIをCI/CDパイプラインに統合することは、API品質チェックを自動化するための素晴らしい方法です。GitHub Actionsと組み合わせて使用する例を以下に示します。
.github/workflows/redocly.yaml
という名前のファイルを作成します。
name: Redocly CLI Checks
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
lint-and-stats:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Install Redocly CLI
run: npm install -g @redocly/cli@latest
- name: Lint API definition
run: redocly lint openapi.yaml --format=github-actions
- name: Get API stats
run: redocly stats openapi.yaml --format=markdown >> $GITHUB_STEP_SUMMARY
このGitHub Actionsワークフローは以下を行います。
main
ブランチへのすべてのプッシュとプルリクエストでトリガーされます。- コードをチェックアウトします。
- Node.jsとRedocly CLIをインストールします。
lint
コマンドをgithub-actions
フォーマットで実行します。これにより、プルリクエストで問題が自動的にアノテーションされます。stats
コマンドをmarkdown
フォーマットで実行し、出力をジョブサマリーに追加します。これにより、実行ごとに良いレポートが得られます。
これは、API定義が常に良好な状態であることを保証するための強力な方法です。
第4章:実践的な例:完全なワークフロー
この最後の章では、学んだすべてをまとめ、完全な実践的なワークフローを順を追って説明します。以下のことを行います。
- 複数のファイルに分かれたAPI定義を持つプロジェクト構造を作成します。
redocly.yaml
設定ファイルを作成します。- カスタム設定を使用してAPI定義をリンティングします。
- APIを単一のファイルにバンドルします。
- APIドキュメントを生成します。
1. プロジェクトのセットアップ
プロジェクト用の新しいディレクトリを作成し、ファイル構造をセットアップしましょう。
mkdir redocly-petstore
cd redocly-petstore
mkdir -p openapi/components/schemas openapi/paths
次に、分割されたAPIファイルを作成しましょう。
openapi/components/schemas/Pet.yaml
:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
openapi/paths/pets.yaml
:
get:
summary: List all pets
operationId: listPets
responses:
'200':
description: An array of pets.
content:
application/json:
schema:
type: array
items:
$ref: ../components/schemas/Pet.yaml
openapi/root.yaml
(メインエントリポイント):
openapi: 3.0.0
info:
title: Petstore API
version: 1.0.0
description: A professional API for managing pets.
servers:
- url: <https://api.petstore.com/v1>
paths:
/pets:
$ref: ./paths/pets.yaml
2. redocly.yaml
の作成
次に、redocly-petstore
ディレクトリのルートに設定ファイルを作成しましょう。
redocly.yaml
:
apis:
petstore@v1:
root: openapi/root.yaml
lint:
extends:
- recommended
rules:
operation-summary: error
no-path-trailing-slash: warn
tag-description: error
この設定では、APIのエイリアスpetstore@v1
を定義し、いくつかのカスタムリンティングルールを追加しました。
3. APIのリンティング
さあ、新しい設定を使用してAPIをリンティングしましょう。
redocly lint petstore@v1
APIが新しいルールのすべてにまだ準拠していないため、いくつかのエラーと警告が表示されます。例えば、説明付きのタグがありません。これは、独自のAPIスタイルガイドを強制する方法を示します。
4. APIのバンドル
次に、複数のファイルに分かれたAPIを単一の配布可能なファイルにバンドルしましょう。
redocly bundle petstore@v1 -o dist/petstore.yaml
これにより、完全に解決されたAPI定義を含むpetstore.yaml
ファイルが内部にあるdist
ディレクトリが作成されます。
5. ドキュメントの生成
最後に、APIドキュメントを生成しましょう。
redocly build-docs petstore@v1 -o dist/petstore-docs.html
これにより、dist/petstore-docs.html
が作成されます。このファイルをブラウザで開いて、美しくインタラクティブなAPIドキュメントを確認してください。
これで完了です!構造化された複数のファイルに分かれたAPI定義から、バンドルされたファイルとプロフェッショナルなドキュメントまで、すべてRedocly CLIで管理される完全なワークフローです。
まとめ
このチュートリアルでは、Redocly CLIについて深く掘り下げました。インストールの基本とコアコマンドから始め、設定やCI統合のような高度なトピックに進み、最後に完全な実践的なワークフローを順を追って説明しました。
これで、Redocly CLIを使用して以下の方法をしっかりと理解できたはずです。
- API定義をリンティングして、品質と一貫性を強制します。
bundle
とsplit
を使用してAPIファイルを管理します。build-docs
を使用して、美しくインタラクティブなAPIドキュメントを生成します。stats
を使用してAPIを分析します。- CI/CDパイプラインでこれらすべてを自動化します。
Redocly CLIは、API開発ワークフローを大幅に改善できる多用途で強力なツールです。その機能をさらに探索し、プロジェクトに統合することをお勧めします。
その他のリソース
- Redocly CLI公式ドキュメント: https://redocly.com/docs/cli/
- Redocly GitHubリポジトリ: https://github.com/Redocly/redocly-cli
- OpenAPI仕様: https://spec.openapis.org/oas/v3.1.0
このチュートリアルをご覧いただきありがとうございました。楽しいAPI構築を!
開発チームが最大限の生産性で共同作業できる、統合されたオールインワンプラットフォームが必要ですか?
Apidogはあなたのすべての要求に応え、Postmanをはるかに手頃な価格で置き換えます!