我有一个ASP。NET核心Web API,其中包含以下endpoint。
[HttpGet]
[Route("models/{ids}")]
[Produces(typeof(IEnumerable<Model>))]
public IActionResult Get
(
[ModelBinder(typeof(CsvModelBinder<string>))] IEnumerable<string> ids
)
{
// Get models
return Ok(models);
}
此endpoint获取ID的CSV列表(例如/models/a、b、c
),并返回相应模型
对象的JSON数组<代码>CsvModelBinder
我现在尝试的是使用NSwag生成一个客户端库,但事实证明这是有问题的,因为Swashback生成的Swagger将ids
参数描述为IEnumerable
选项A:有没有办法让Swashback将参数描述为
字符串
,而不是IEnumerable
选项B:有没有办法告诉NSwag这个
IEnumerable
可以编写自定义操作过滤器(Swashback)或操作处理器(NSwag),将规范中的给定参数转换为普通字符串。
我想出来了。我需要在S中使用MapType()创建一个自定义模型tartup.cs
public class Csv<T> : List<T> where T : IConvertible
{
public Csv<T> Append(string delimitedValues)
{
var splitValues = delimitedValues
.Split(',', StringSplitOptions.RemoveEmptyEntries)
.Cast<string>();
var convertedValues = splitValues
.Select(str => Convert.ChangeType(str, typeof(T)))
.Cast<T>();
this.AddRange(convertedValues);
return this;
}
public override string ToString()
{
return this.Aggregate("", (a,s) => $"{a},{s}").Trim(',');
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSwaggerGen(c =>
{
c.IncludeXmlComments(() => new XPathDocument(new FileStream(Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "MyApi.xml"), FileMode.Open)));
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1"});
c.MapType<Csv<string>>(() => new Schema { Type = "string", Format = "string" });
});
}
Im使用swagger和spring boot为我的对象自动生成API文档。但是,我正在使用@JSONanyGetter@JSONanySetter动态地向我的json响应添加字段。如 产生:
我有一个.Net Core v2.1 Web API,它使用NSwag生成其Swagger Json。 我有一个这样的反应模型- 生成Swagger JSON的- 当在JSON上运行swagger代码时,我在我的IO. Swagger项目中获得了以下LoginResault模型,用于C#(选择了目标框架5.0)- 有人可以帮助描述我如何让枚举生成与IO. Swagger中的原始LoginResul
我正在使用Swashback为ASP生成swagger文档。NET核心API我正在写。在我的API中,我使用了许多自定义Json转换器,因此我接收和返回的Json看起来与C类的定义不完全一样。例如,我可能有这样一个类: 它将被序列化为 然而,Swashuckle将其记录为 我如何告诉Swashback我的模型是如何序列化和反序列化的?
基本问题是试图使用自定义数据模型来创建用于deeplearning4j网络的DataSetIterator。 我试图使用的数据模型是一个java类,它包含一系列双打,这些双打是从特定股票的报价中创建的,例如时间戳、打开、关闭、高、低、卷、技术指标1、技术指标2等。我查询了一个internet源示例(也是来自同一站点的其他几个指标),它提供了json字符串,我将这些字符串转换为我的数据模型,以便于访
我正在使用Swashback生成Swagger输出。在我的模型I上,具有以下属性: FieldValue是一个简单的类,可以保存ID和名称: 通过代码中的一些业务逻辑,一组可能的键值对(ID和名称)映射到此属性。 现在,我想在我的Swagger输出中的enum标签中显示所有可能的值。使用ISchemaFilter的一个实现,即MyProperty属性上的一个自定义属性,并使用allOf而不是简单的
我最近提议使用swashuckle将swagger集成到我们的Web API中,以便在内部向我们的工程师公开API功能。对于我们的目的,swagger在生产中没有意义,因为API是后端的......作为一个企业环境,API的数量很大,我可以预见两个主要问题: 程序集的大小约为2.6MB:假设数百个集成了swahbuckle的API构建突然之间,我们所有应用程序的大小都增加了4.5倍。不合理的打击。