我希望使用Swashbuckle为Web API方法生成Swagger文档和Swagger UI,如下所示(它实际上是与PDF的邮件合并):
[HttpPost]
[ResponseType(typeof(byte[]))]
public HttpResponseMessage MergeValues([FromUri]Dictionary<string, string> mergeValues,
[FromBody]byte[] pdfTemplate)
{
return MergeStuff();
}
目前无法使用,或者至少我不确定如何与生成的Swagger UI进行交互。
这会创建以下Swagger UI,这似乎是合理的,但我不知道如何正确填充它(或者它是否正确)。我使用了最新Nuget的所有默认Swashbuckle设置。
字节数组:如果我输入字节数组的Base64编码文本,字节数组总是显示为空。结果我只需要我的BASE64文本被包围双引号然后它起作用。
字典:我尝试了各种类型的JSON表达式(数组,对象等),并且无法获取要填充的字典中的任何值(生成的Dictionary对象有0个项目) )。
我有能力改变一切,并想知道如何做到这一点。例如,如果将字典更改为KeyValuePair<string,string>
数组有帮助,那就试试吧。
选项我知道我有这个我想避免的:
答案 0 :(得分:2)
我的问题确实是两个人的问题。以下是答案,但只是对第二个问题的部分答案:
问题1: 如何填写字节数组的数据?
答案1 :粘贴在base64编码的值中,但请务必在开头和结尾用双引号括起该内容。
问题2: 如何填写词典数据?
回答2:虽然它不能与[FromUri]
一起使用,但这适用于[FromBody]
(Dictionary
或IDictionary<string,string>
会工作):
{"FirstName":"John","LastName":"Doe"}
我不确定为什么这不能与FromUri
一起使用,但我会问一个单独的问题,比这个问题要集中得多最底层的。出于这个问题的目的,两个参数都可以放入DTO,标记为[FromBody]
,然后一切都很好。