指定其醒目的api的名称

时间:2018-10-22 14:31:50

标签: c# asp.net swagger

我有一个名为User的控制器,其中有两个GET方法可以通过用户的邮件GetUserByMail或手机号码GetUserByMobile检索用户的信息。

问题在于,当我生成Swagger文档时,我同时拥有GET但没有他们的名字。它们都被称为“用户”,其各自的参数为“邮件”或“移动”。

如何通过Swagger的C#属性指定我的API名称,以将其正确包含在文档中?

2 个答案:

答案 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放在整个类上,它将为其中的所有方法创建一条路由。