ASP.NET Core RESTful,相同的路由但不同的操作



我尝试具有相同url的多个路由,如files/{fileId},但返回值不同。我想根据MIME类型来区分路由。在一种情况下,我想要JSON格式的文件细节,在另一个文件本身。

/// <summary>
/// get a file by its Id
/// </summary>
/// <response code="200">The file for download</response>
/// <response code="404">File id was not found</response>
[HttpGet("files/{fileId}")]
public async Task<IActionResult> GetFile([FromRoute] int fileId)
{
var fileModel = await _boFileService.GetFileStreamAndFileName(fileId);
return File(fileModel.Stream, MediaTypeNames.Application.Octet, fileModel.FileName);
}
/// <summary>
/// get the details of a file by its Id
/// </summary>
/// <response code="200">The details for the file, like name, status and type</response>
/// <response code="404">File id was not found</response>
[HttpGet("files/{fileId}")]
public async Task<ActionResult<BoFileModel>> GetFileDetails([FromRoute] int fileId)
{
return await _boFileService.GetFileDetails(fileId);
}

此刻,我得到了以下错误:

操作需要一个唯一的方法/路径组合对于Swagger/OpenAPI 3.0

有人知道吗?有可能有相等的路线吗?

谢谢

您应该能够使用ConsumesAttribute来描述哪些内容类型映射到哪个控制器动作。

最新更新