在 .NET 中动态生成响应的一部分时生成 Swagger 响应模型
Producing Swagger response model when a part of the response is being dynamically genereated in .NET
我正在使用 swashbuckle 4.1。
我有一个通用的响应类型:
{
statuscode:int
message:""
result: dynamically determined wrt request`
count: int`
}
在这里,
结果参数是在 运行 时间内为每个端点动态确定的。
我如何指定响应类型,以便为结果的每个端点提供相应的模型。
通过声明语句。
即
public JsonResult<Response> endpointformodeltypeA(){
---
---
}
它的响应是:
{
statuscode:int
message:""
result: modelA
count: int`
}
result:modelA
是动态确定的。
我将如何通过声明性陈述大摇大摆地定义它。
您可以通过 Generics 完成。
首先创建您的基本响应 class。
public class SomeBaseResponse<T>
{
[JsonProperty("statuscode")]
public int StatusCode { get; set; }
[JsonProperty("message")]
public string Message { get; set; }
[JsonProperty("result")]
public T Result { get; set; }
[JsonProperty("count")]
public int Count { get; set; }
}
然后您可以通过控制器操作class响应。
这是一个例子:
public SomeBaseResponse<SomeModel> FirstControllerAction(){
// It can be anything else than SomeModel
return new SomeBaseResponse<SomeModel> {
StatusCode = 10,
Message = "Success!",
Result = new SomeModel(),
Count = 1
};
}
您可以使用不同的通用类型创建任意数量的端点。
这也有助于使您的回答具有概括性和易于解析的能力。
Swagger 会生成这样的东西。
(这不是我们创建的模型的实际表示,它只是一个示例!)
Click here to view screenshot
我正在使用 swashbuckle 4.1。
我有一个通用的响应类型:
{
statuscode:int
message:""
result: dynamically determined wrt request`
count: int`
}
在这里, 结果参数是在 运行 时间内为每个端点动态确定的。
我如何指定响应类型,以便为结果的每个端点提供相应的模型。
通过声明语句。
即
public JsonResult<Response> endpointformodeltypeA(){
---
---
}
它的响应是:
{
statuscode:int
message:""
result: modelA
count: int`
}
result:modelA
是动态确定的。
我将如何通过声明性陈述大摇大摆地定义它。
您可以通过 Generics 完成。
首先创建您的基本响应 class。
public class SomeBaseResponse<T>
{
[JsonProperty("statuscode")]
public int StatusCode { get; set; }
[JsonProperty("message")]
public string Message { get; set; }
[JsonProperty("result")]
public T Result { get; set; }
[JsonProperty("count")]
public int Count { get; set; }
}
然后您可以通过控制器操作class响应。
这是一个例子:
public SomeBaseResponse<SomeModel> FirstControllerAction(){
// It can be anything else than SomeModel
return new SomeBaseResponse<SomeModel> {
StatusCode = 10,
Message = "Success!",
Result = new SomeModel(),
Count = 1
};
}
您可以使用不同的通用类型创建任意数量的端点。
这也有助于使您的回答具有概括性和易于解析的能力。
Swagger 会生成这样的东西。
(这不是我们创建的模型的实际表示,它只是一个示例!)
Click here to view screenshot