# メタデータとドキュメントのURL
**FastAPI** アプリケーションのいくつかのメタデータの設定をカスタマイズできます。
## タイトル、説明文、バージョン
以下を設定できます:
* **タイトル**: OpenAPIおよび自動APIドキュメントUIでAPIのタイトル/名前として使用される。
* **説明文**: OpenAPIおよび自動APIドキュメントUIでのAPIの説明文。
* **バージョン**: APIのバージョン。例: `v2` または `2.5.0`。
*たとえば、以前のバージョンのアプリケーションがあり、OpenAPIも使用している場合に便利です。
これらを設定するには、パラメータ `title`、`description`、`version` を使用します:
{* ../../docs_src/metadata/tutorial001.py hl[4:6] *}
この設定では、自動APIドキュメントは以下の様になります:
## タグのためのメタデータ
さらに、パラメータ `openapi_tags` を使うと、path operations をグループ分けするための複数のタグに関するメタデータを追加できます。
それぞれのタグ毎にひとつの辞書を含むリストをとります。
それぞれの辞書は以下をもつことができます:
* `name` (**必須**): *path operations* および `APIRouter` の `tags` パラメーターで使用するのと同じタグ名である `str`。
* `description`: タグの簡単な説明文である `str`。 Markdownで記述でき、ドキュメントUIに表示されます。
* `externalDocs`: 外部ドキュメントを説明するための `dict`:
* `description`: 外部ドキュメントの簡単な説明文である `str`。
* `url` (**必須**): 外部ドキュメントのURLである `str`。
### タグのためのメタデータの作成
`users` と `items` のタグを使った例でメタデータの追加を試してみましょう。
タグのためのメタデータを作成し、それを `openapi_tags` パラメータに渡します。
{* ../../docs_src/metadata/tutorial004.py hl[3:16,18] *}
説明文 (description) の中で Markdown を使用できることに注意してください。たとえば、「login」は太字 (**login**) で表示され、「fancy」は斜体 (_fancy_) で表示されます。
/// tip | 豆知識
使用するすべてのタグにメタデータを追加する必要はありません。
///
### 自作タグの使用
`tags` パラメーターを使用して、それぞれの *path operations* (および `APIRouter`) を異なるタグに割り当てます:
{* ../../docs_src/metadata/tutorial004.py hl[21,26] *}
/// info | 情報
タグのより詳しい説明を知りたい場合は [Path Operation Configuration](path-operation-configuration.md#tags){.internal-link target=_blank} を参照して下さい。
///
### ドキュメントの確認
ここで、ドキュメントを確認すると、追加したメタデータがすべて表示されます:
### タグの順番
タグのメタデータ辞書の順序は、ドキュメントUIに表示される順序の定義にもなります。
たとえば、`users` はアルファベット順では `items` の後に続きます。しかし、リストの最初に `users` のメタデータ辞書を追加したため、ドキュメントUIでは `users` が先に表示されます。
## OpenAPI URL
デフォルトでは、OpenAPIスキーマは `/openapi.json` で提供されます。
ただし、パラメータ `openapi_url` を使用して設定を変更できます。
たとえば、`/api/v1/openapi.json` で提供されるように設定するには:
{* ../../docs_src/metadata/tutorial002.py hl[3] *}
OpenAPIスキーマを完全に無効にする場合は、`openapi_url=None` を設定できます。これにより、それを使用するドキュメントUIも無効になります。
## ドキュメントのURL
以下の2つのドキュメントUIを構築できます:
* **Swagger UI**: `/docs` で提供されます。
* URL はパラメータ `docs_url` で設定できます。
* `docs_url=None` を設定することで無効にできます。
* ReDoc: `/redoc` で提供されます。
* URL はパラメータ `redoc_url` で設定できます。
* `redoc_url=None` を設定することで無効にできます。
たとえば、`/documentation` でSwagger UIが提供されるように設定し、ReDocを無効にするには:
{* ../../docs_src/metadata/tutorial003.py hl[3] *}