【发布时间】:2019-03-12 13:37:41
【问题描述】:
我们使用 swagger 来测试我们的其余 API。我有一个带有以下值的 json 对象:
...
"MyValue" : 243400.000000
}
但是,当它通过 swagger 显示时,它显示为:
...
"MyValue" : 243400
}
在我的控制器中,我在 return 语句上设置了一个断点,我可以在 dResult 中验证“MyValue”是 243400.000000,但大摇大摆的显示并未反映这一点。控制器代码如下:
...
var dresult = JSON.JsonConvert.DeserializeObject(result, new JSON.JsonSerializerSettings
{
FloatParseHandling = JSON.FloatParseHandling.Decimal
});
return Request.CreateResponse(HttpStatusCode.OK, dresult, JsonMediaTypeFormatter.DefaultMediaType);
这可能是一个招摇的配置问题吗?我还没有找到任何指向它的东西。任何帮助将不胜感激。
原始的招摇配置:
using System.Web.Http;
using WebActivatorEx;
using MyService.WebApi;
using Swashbuckle.Application;
using Swashbuckle.Swagger;
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
namespace MyService.WebApi
{
public class SwaggerConfig
{
public static void Register()
{
var thisAssembly = typeof(SwaggerConfig).Assembly;
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "MyService.WebApi");
c.IncludeXmlComments(string.Format(@"{0}\bin\MyService.WebApi.XML", System.AppDomain.CurrentDomain.BaseDirectory));
c.UseFullTypeNameInSchemaIds();
c.DescribeAllEnumsAsStrings();
})
.EnableSwaggerUi(c =>
{
c.DisableValidator();
});
}
}
}
【问题讨论】:
-
将其包含在您的招摇配置中并检查 config.MapType
(() => new Schema { type="number", format="decimal" }); -
@TonyTom - 我添加了您建议和测试的行...仍然不显示十进制值。
-
您能否在问题中也包含您的招摇配置?
-
c.MapType
(() => new OpenApiSchema { Type = "number", Format = "decimal" });