我有一个名为User
的控制器,其中有两个GET方法可以通过用户的邮件GetUserByMail
或手机号码GetUserByMobile
检索用户的信息。
问题在于,当我生成Swagger文档时,我同时拥有GET但没有他们的名字。它们都被称为“用户”,其各自的参数为“邮件”或“移动”。
如何通过Swagger的C#属性指定我的API名称,以将其正确包含在文档中?
答案 0 :(得分:1)
//This is important
[Route("api/[controller]/[action]")]
public class PingController : Controller
{
[HttpGet]
public IActionResult Ping()
{
return Ok("Pong");
}
}
[action]
表示要大摇大摆地使用方法名称。
答案 1 :(得分:1)
您必须明确指定操作方法的名称,可以在您的API中访问它们:
[RoutePrefix("api/user")]
public sealed class UserController : ApiController
{
[Route("get-user-by-mail/{email}")]
public object GetUserByMail(string email) { }
[Route("get-user-by-mobile/{mobile}")]
public object GetUserByMail(string mobile) { }
}
如果将RouteAttribute
放在整个类上,它将为其中的所有方法创建一条路由。