Skip to content

設定

OpenApiWeaverDocument アイテム

OpenApiWeaver は OpenApiWeaverDocument MSBuild アイテムで設定します。サポートされるメタデータは次のとおりです。

メタデータ必須説明既定値
IncludeはいOpenAPI ドキュメントへのパス (.json, .yaml, .yml)-
ClientNameいいえ生成されるルートクライアントクラス名ファイル名 → PascalCase + Client
Namespaceいいえ生成されるすべての型の名前空間プロジェクトの 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 を付与した名前を導出します。

ファイル名生成されるクライアント名
petstore.yamlPetstoreClient
api-schema.jsonApiSchemaClient
my_service.ymlMyServiceClient

対応ドキュメント形式

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

拡張子形式
.jsonOpenAPI 3.x JSON
.yamlOpenAPI 3.x YAML
.ymlOpenAPI 3.x YAML

これ以外の拡張子を持つファイルは、OpenApiWeaverDocument に含まれていてもジェネレーターでは処理されません。

ドキュメント検出

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

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

Released under the MIT License.