我有一个控制器动作方法来读取< code >请求。Body直接(而不是使用File)用于流式传输和其他目的。问题是没有模型绑定,因此Swagger不记录合同。例如:
[HttpPost("upload")]
[DisableFormValueModelBinding]
public async Task<IActionResult> UploadAsync()
{
// Read from Request.Body manually, expecting content type to be multipart/*
return Ok();
}
加载 Swagger UI 时,无法上传文件等。
有没有办法用 ASP.NET 核心中的属性来支持这一点?
API:
[HttpPost]
public async Task<IActionResult> Post(
[FromForm(Name = "myFile")]IFormFile myFile)
{
using (var fileContentStream = new MemoryStream())
{
await myFile.CopyToAsync(fileContentStream);
await System.IO.File.WriteAllBytesAsync(Path.Combine(folderPath, myFile.FileName), fileContentStream.ToArray());
}
return CreatedAtRoute(routeName: "myFile", routeValues: new { filename = myFile.FileName }, value: null); ;
}
操作过滤器
public class SwaggerFileOperationFilter : IOperationFilter
{
public void Apply(Operation operation, OperationFilterContext context)
{
if (operation.OperationId == "Post")
{
operation.Parameters = new List<IParameter>
{
new NonBodyParameter
{
Name = "myFile",
Required = true,
Type = "file",
In = "formData"
}
};
}
}
}
启动-配置服务
services.AddSwaggerGen(
options =>
{
options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info { Title = "My API", Version = "v1" });
options.OperationFilter<SwaggerFileOperationFilter>();
});
来源是:在此输入链接说明
理想情况下,我们将有一个显示所有标记为public的控制器/方法的大摇大摆的页面,以及另一个显示所有endpoint的密码安全endpoint。这可能吗?
我有一个java项目(tomcat webapp)和一些REST Api。我想为他们生成大摇大摆的文档。我从本教程(github)开始。我没有maven我们使用蚂蚁任务。我加入了swagger-annotations-1.5.0。jar和所有随swagger jaxrs jar 1.5.0版本附带的jar(如果有用的话,我可以包括一个完整的列表),我已经注释了一些方法,我有一个如下的配置类: }
我正在尝试验证swagger文件(实际上是我的gradle构建的一部分)。我曾经尝试过使用swagger解析器,但尽管它可以工作,如果swagger根本不进行解析,就会出现错误,但它似乎无法以这种方式捕获问题http://editor.swagger.io/#/做(这就是我要找的。) 当然,这是一个很常见的问题,一定有办法做到这一点? 我所尝试的: build.gradle: 有一些明显问题的简单
我想大摇大摆地发布一个json正文,就像这样: 目前,我有这样的定义: 但是数据是在URL中发送的。这里是Swagger提供的生成的curl: 我知道<code>查询</code>关键字不好,但我没有找到POST JSON正文的方法。我尝试了<code>formData</code>,但没有成功。
我创建了一个新的Web Api项目,添加了ASP.NET标识并配置了OAuth,如下所示: 谢了。 另外,我应该说Swagger文档对我所有的控制器都适用,只是我忽略了一个明显的方法--如何登录。
我正在使用Swagger创建一个文档页面,我想自动添加从正确的调用中收到的访问令牌。我试着用它 接收和存储令牌,以及 但是,要通过标头将其传递到后续请求,这只适用于一次调用,之后令牌将恢复为<code>null</code>。 如何防止值被还原?