Skip to content

設定

OpenApiWeaverDocument アイテム

OpenApiWeaver を設定する推奨方法は、OpenApiWeaverDocument MSBuild アイテムを使うことです。次のメタデータをサポートします。

MetadataRequiredDescriptionDefault
IncludeYesOpenAPI ドキュメントへのパス (.json, .yaml, .yml)-
ClientNameNo生成されるルートクライアントクラス名ファイル名 → PascalCase + Client
NamespaceNo生成されるすべての型の名前空間プロジェクトの RootNamespace

xml
<ItemGroup>
  <OpenApiWeaverDocument Include="openapi\petstore.yaml"
                         ClientName="PetstoreClient"
                         Namespace="Contoso.Generated" />
</ItemGroup>

ビルド時には、パッケージに含まれる buildTransitive ターゲットが各 OpenApiWeaverDocument をコンパイラ可視の AdditionalFiles へ投影し、ClientNameNamespace のメタデータもソースジェネレーターへ受け渡します。

複数ドキュメント

1 つのプロジェクトに複数の OpenAPI ドキュメントを含めることができます。各ドキュメントは独立したクライアントを生成します。

xml
<ItemGroup>
  <OpenApiWeaverDocument Include="openapi\petstore.yaml"
                         ClientName="PetstoreClient"
                         Namespace="Contoso.Petstore" />
  <OpenApiWeaverDocument Include="openapi\billing.json"
                         ClientName="BillingClient"
                         Namespace="Contoso.Billing" />
</ItemGroup>

クライアント名の導出

ClientName を指定しない場合、ジェネレーターはファイル名を PascalCase に変換して Client を末尾に付与した名前を導出します。

File NameGenerated Client Name
petstore.yamlPetstoreClient
api-schema.jsonApiSchemaClient
my_service.ymlMyServiceClient

対応ドキュメント形式

OpenApiWeaver は次の形式の OpenAPI 3.0-3.2 ドキュメントを読み込みます。

ExtensionFormat
.jsonOpenAPI 3.x JSON
.yamlOpenAPI 3.x YAML
.ymlOpenAPI 3.x YAML

OpenApiWeaverDocument に含まれていても、その他の拡張子のファイルはジェネレーターに無視されます。

ドキュメント検出

ジェネレーターが処理するのは OpenApiWeaverDocument アイテムだけです。

  • AdditionalFiles に直接追加したファイルは無視されます
  • ClientNameNamespace のメタデータは OpenApiWeaverDocument 経由で指定した場合にのみ利用されます

Released under the MIT License.