在模型中使用 JToken 时的 Swagger Schema 自引用
Swagger Schema self referencing when JToken is used in the model
我的 API 模型有一个 属性 类型的 JArray,如
public class MyModel
{
public JArray Credentials { get; set; }
public string Property1 {get;set;}
}
对于凭据 Swagger 生成类似
"credentials": {
"type": "array",
"items": {
"$ref": "#/components/schemas/JToken"
},
"nullable": true
}
架构就像
"JToken": {
"type": "array",
"items": {
"$ref": "#/components/schemas/JToken"
}
}
这里JToken是自引用的,如何避免这种自引用?
在生成 Swagger 文档时映射了如下所示的 JToken 类型,解决了自引用问题
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
c.MapType<JToken>(() => new OpenApiSchema { Type = typeof(JToken).Name });
});
我的 API 模型有一个 属性 类型的 JArray,如
public class MyModel
{
public JArray Credentials { get; set; }
public string Property1 {get;set;}
}
对于凭据 Swagger 生成类似
"credentials": {
"type": "array",
"items": {
"$ref": "#/components/schemas/JToken"
},
"nullable": true
}
架构就像
"JToken": {
"type": "array",
"items": {
"$ref": "#/components/schemas/JToken"
}
}
这里JToken是自引用的,如何避免这种自引用?
在生成 Swagger 文档时映射了如下所示的 JToken 类型,解决了自引用问题
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
c.MapType<JToken>(() => new OpenApiSchema { Type = typeof(JToken).Name });
});