til : NSWAGで必要な&オプションのパラメータを生成する
私はnswagを使用してそれぞれのswaggerページを生成します.NETコアサービス、そして私もnswagを使用して生成する.そのサービスへの通話時に使用する他のサービスのNET標準プロキシクライアント.
しかし、生成されたクライアントのシグネチャは、どのパラメータが必要であり、どのパラメータがNULLであるかを記述する際に正確ではありません.これはそれを修正する方法です.
これは終点の例です.UserIDと年齢は必須であり、null許容できません.favenumberはオプションで、null可能です.
スパーガ.JSON
まず、エンドポイントのエンドポイントパラメータを適切に記述する必要があります.JSONはパラメータを正しく説明します:
クライアントの生成
今、我々は適切なswaggerを持っている.JSONは、NSWAGクライアントを構築するために使用します.
「オプションのパラメータ生成」を選択してください.次のメソッドを使用して生成されたクライアントを終了します.
概要
NSWAGクライアントを生成するときは、クライアント世代の設定でプレイしないでください.正しく生成されているJSONは、コードで構築したエンドポイントを表します.
正しいswaggerのビルドJSONは正しいクライアントを構築する鍵です.
しかし、生成されたクライアントのシグネチャは、どのパラメータが必要であり、どのパラメータがNULLであるかを記述する際に正確ではありません.これはそれを修正する方法です.
これは終点の例です.UserIDと年齢は必須であり、null許容できません.favenumberはオプションで、null可能です.
[HttpGet()]
public ActionResult GetValues(
FromHeader] string userId,
[FromQuery] int age,
[FromQuery] int? faveNumber)
{
return Ok();
}
生成されたクライアントコードに次のメソッドシグネチャを作成します.GetValues(string userId, int age, int? faveNumber = null)
スパーガ.JSON
まず、エンドポイントのエンドポイントパラメータを適切に記述する必要があります.JSONはパラメータを正しく説明します:
"parameters": [
{
"name": "userId",
"in": "header",
"required": true,
"schema": {
"type": "string"
},
"x-position": 1
},
{
"name": "age",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
},
"x-position": 2
},
{
"name": "faveNumber",
"in": "query",
"schema": {
"type": "integer",
"format": "int32",
"nullable": true
},
"x-position": 3
}
],
必要と許容可能なフィールドは、適切に生成されたクライアントを取得するキーです.使用可能な(?)nullableなパラメータを指定し、含まなければならないパラメータを示すためにbindrequiredを使用します. [HttpGet()]
public ActionResult GetValues(
[BindRequired][FromHeader] string userId,
[BindRequired][FromQuery] int age,
[FromQuery] int? faveNumber)
{
return Ok();
}
}
起動時に.csはデフォルトのnull参照をnotnullに設定し、必須のフィールドがNULLを値として受け入れるのを防ぎます. services.AddOpenApiDocument(settings =>
{
settings.DefaultReferenceTypeNullHandling = NJsonSchema.Generation.ReferenceTypeNullHandling.NotNull;
});
クライアントの生成
今、我々は適切なswaggerを持っている.JSONは、NSWAGクライアントを構築するために使用します.
「オプションのパラメータ生成」を選択してください.次のメソッドを使用して生成されたクライアントを終了します.
public async System.Threading.Tasks.Task<FileResponse> Values_GetValuesAsync(
string userId,
int age,
int? faveNumber = null))
概要
NSWAGクライアントを生成するときは、クライアント世代の設定でプレイしないでください.正しく生成されているJSONは、コードで構築したエンドポイントを表します.
正しいswaggerのビルドJSONは正しいクライアントを構築する鍵です.
Reference
この問題について(til : NSWAGで必要な&オプションのパラメータを生成する), 我々は、より多くの情報をここで見つけました https://dev.to/timothymcgrath/til-generate-required-optional-parameters-with-nswag-3g61テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol