我认为这是一个非常典型的场景:我们的解决方案公开了一个由asp核心C#控制器构造的API,我们从该控制器生成一个swagger.json (使用https://github.com/domaindrivendev/Swashbuckle.AspNetCore)。
我们通过使用C# ( AutoRest,https://github.com/Azure/autorest)生成的AutoRest客户机在代码中调用这个api。
为了执行潜在的大规模上传,我们希望使用AutoRest生成的客户端将流从C#调用方传递到后端,以避免序列化/反序列化完整对象。
我想不出如何使用这两个工具一起传递一个流,并调用我们的c#代码。我尝试将它作为参数添加,但是这会导致AutoRest为System.IO.Stream创建一个"Stream“模型,然后将其用作输入参数的类型,而不是只保留原始类型。我尝试将其作为FromBody参数传入,但除了上面的问题外,AutoRest还在将其添加到请求之前将其输入为StringContent,而不是StreamContent (可能是因为SwaggerGen没有将其标识为流?)。
如果我们不能做到这一点,我们总是可以手动使用HTTPClient,我想。
发布于 2018-09-12 04:20:09
我们无法解决这个问题,最终得到了一个不太理想的解决方案,这个解决方案(对我们来说)仍然比手动生成的HTTPClient更可取。
现在,我们只对该端点的所有调用使用这个手动生成的方法,而不是自动生成的方法。这附带了几个重要的警告:
https://stackoverflow.com/questions/48821782
复制相似问题