Swagger在UI中添加了三个额外的参数。它只有两种方法。其他三个很好。所有的定义方式几乎都是相同的。我能看到的唯一区别是参数的顺序([FromBody]首先是令人讨厌的方法)。
我一直在Google上进行研究,但找不到任何遇到相同问题的人。我唯一想尝试的就是重新排列参数的顺序。
// Does not have the parameters
[HttpPost]
[Route ( "api/Processor/GetHtmlWithByteArrays" )]
public JsonResult GetHtmlWithByteArrays ( [FromQuery] List<string> roles, [FromBody] List<byte[ ]> files ) => new JsonResult ( Processor.GetHtml ( roles, files ) );
// Has the extra parameters
[HttpPost]
[Route ( "api/Processor/GetDocFromHtmlString" )]
public JsonResult GetDocFromHtmlString ( [FromBody] string htmlString, [FromQuery] DocType docType, [FromQuery] bool includeToc = true,
bool includeFooter = false ) => new JsonResult ( Processor.GetDocFromHtmlString ( htmlString, docType, includeToc, includeFooter ) );
我希望SwaggerUI仅显示我定义的参数。但是,对于我的两种方法,正在添加以下参数:
Provider.SupportedExtensions
Provider.CanImport
Provider.CanExport
答案 0 :(得分:0)
我最终发现这是由于我引用抽象类(DocType)引起的。我通过引用Newtonsoft.Json并使用必要的装饰设置类来让Json知道如何解决它,从而解决了该问题。已知类型是继承抽象类的对象。希望这对遇到类似问题的人有所帮助。
[ JsonConverter ( typeof ( JsonInheritanceConverter ), "discriminator" ) ]
[ KnownType ( typeof ( Docx ) ) ]
[ KnownType ( typeof ( Html ) ) ]
[ KnownType ( typeof ( Pdf ) ) ]
[ KnownType ( typeof ( Rtf ) ) ]
[ KnownType ( typeof ( Txt ) ) ]