# Path Operationの高度な設定

## OpenAPI operationId

/// warning | 注意

あなたがOpenAPIの「エキスパート」でなければ、これは必要ないかもしれません。

///

*path operation* で `operation_id` パラメータを利用することで、OpenAPIの `operationId` を設定できます。

`operation_id` は各オペレーションで一意にする必要があります。

{* ../../docs_src/path_operation_advanced_configuration/tutorial001.py hl[6] *}

### *path operation関数* の名前をoperationIdとして使用する

APIの関数名を `operationId` として利用したい場合、すべてのAPIの関数をイテレーションし、各 *path operation* の `operationId` を `APIRoute.name` で上書きすれば可能です。

そうする場合は、すべての *path operation* を追加した後に行う必要があります。

{* ../../docs_src/path_operation_advanced_configuration/tutorial002.py hl[2,12:21,24] *}

/// tip | 豆知識

`app.openapi()` を手動でコールする場合、その前に`operationId`を更新する必要があります。

///

/// warning | 注意

この方法をとる場合、各 *path operation関数* が一意な名前である必要があります。

それらが異なるモジュール (Pythonファイル) にあるとしてもです。

///

## OpenAPIから除外する

生成されるOpenAPIスキーマ (つまり、自動ドキュメント生成の仕組み) から *path operation* を除外するには、 `include_in_schema` パラメータを `False` にします。

{* ../../docs_src/path_operation_advanced_configuration/tutorial003.py hl[6] *}

## docstringによる説明の高度な設定

*path operation関数* のdocstringからOpenAPIに使用する行を制限することができます。

`\f` (「書式送り (Form Feed)」のエスケープ文字) を付与することで、**FastAPI** はOpenAPIに使用される出力をその箇所までに制限します。

ドキュメントには表示されませんが、他のツール (例えばSphinx) では残りの部分を利用できるでしょう。

{* ../../docs_src/path_operation_advanced_configuration/tutorial004.py hl[19:29] *}
