发布FromBody不工作没有斜杠

时间:2017-09-07 15:14:07

标签: c# asp.net-web-api asp.net-core nswag

我有一个ASP.Net Core 2.0 Web API项目,该项目利用NSwag获得Swagger功能。问题是当我使用SwaggerUI测试API时,FromBody参数不起作用。然而,当我使用Postman并为头部选择相同的body和application / json时(如SwaggerUi),一切正常。
在调试器中,我注意到Postman的请求有一个尾部斜杠,而来自SwaggerUi的请求不是。

以下是来自控制器的操作:

[HttpPost("")]
[SwaggerResponse(HttpStatusCode.Created, typeof(BlobItem))]
public async Task<IActionResult> Create([FromBody] BlobItem item)
{
    if (item == null)
    {
        return this.BadRequest("the item is null");
    }

    var blobItem = await BlobHelpers.PostBlobItemAync(this.container, item);

    return this.CreatedAtRoute("GetBlobInfo", new { blobName = item.Name }, blobItem);
}

邮递员 - &gt;项目已填写 SwaggerUi - &gt; item为null

我尝试在启动

中向默认路由添加尾部斜杠
app.UseSwaggerUi(typeof(Startup).GetTypeInfo().Assembly, new SwaggerUiSettings()
{
    DefaultUrlTemplate = "{controller}/{action}/{id}/",
    DefaultPropertyNameHandling = NJsonSchema.PropertyNameHandling.CamelCase,
});

没有成功,也

services.AddRouting(options => options.AppendTrailingSlash = true);
在Startup.ConfigureServices中

没有成功,这意味着请求仍然没有通过SwaggerUi的尾部斜杠。

如何强制使用尾部斜杠,还是可以执行其他操作以确保FromBody参数正常工作?

0 个答案:

没有答案