簡體   English   中英

Swashbuckle.AspNetCore (5.0.0-rc5) 忽略公共字段

[英]Swashbuckle.AspNetCore (5.0.0-rc5) ignoring public fields

首先,這在 Swashbuckle.AspNetCore v4 中運行良好。 因此,鑒於此模型和端點;

public class TestRequest
{
    public string test1 { get; set; }
    public string test2;
}

[HttpPost]
public void Post([FromBody] TestRequest value)
{
}

Swagger 只顯示;

{
  "test1": "string"
}

作為示例 TestRequest 值。

這種行為現在是有意的嗎? 有沒有辦法通過設置或過濾器來改變這個? 我有大量僅使用字段的導入服務。 (由 dotnet-svcutil 生成,這很常見)

好的,根據@Flydog57 的建議自行解決,我發現新的 Swashbuckle.AspNetCore 正在通過 Newtonsoft 使用 MS json.net。

所以在https://github.com/domaindrivendev/Swashbuckle.AspNetCore 上第十次閱讀 git readme

我發現有一種方法可以將 json 序列化程序恢復為 Newtonsoft。 首先(從 5.0.0-rc5 版本開始)安裝這個包;

Install-Package Swashbuckle.AspNetCore.Newtonsoft -Version 5.0.0-rc5

然后在 Start.ConfigureServices 中告訴 Swashbuckle 使用;

services.AddSwaggerGenNewtonsoftSupport();

現在,您會發現所有這些公共“字段”都重新出現在您的 swagger 頁面中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM