微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Open APISwagger路由命名约定

如何解决Open APISwagger路由命名约定

我在项目中使用Swagger,我想知道正确的路由命名约定是什么。另一方面,我通过使用方法名称使用以下命名约定,但是我不确定这是否是一种好习惯。在此示例中,我没有遵循任何约定,只是尝试使用方法名称,以便对API页面进行解释。

请注意,当我仅对[HttpGet][HttpGet("{id}")]方法使用GetGetById时,会遇到类似两次使用相同名称错误。因此,我必须额外使用路由注释。解决此问题的正确方法是什么?

[HttpGet,Route("get")]
public IEnumerable<DemoDto> Get()
{
    //
}

[HttpGet,Route("getById/{id}")]
public DemoDto GetById(int id)
{
    //
}

[HttpGet,Route("getWithPagination/{query}")]
public ActionResult<PaginatedList<DemoDto>> GetWithPagination([FromQuery] GetPublishersWithPaginationQuery query)        
{
    //
}

[HttpPost,Route("create/{command}")]
public int Create(Command command)
{
    //
}

[HttpPut,Route("update/{id}")]
public ActionResult Update(int id)
{
    //
}

[HttpDelete,Route("delete/{id}")]
public ActionResult Delete(int id)
{
    //
}

解决方法

通常,我会遵循该语言的命名约定,并且该语言的创建者提供了有关其使用方式的文档,因此您与社区的其余部分保持一致。在这种情况下,these是Microsoft针对C#记录的内容。

对于路由的其他问题,通常我看到的是attribute routing,这就是您正在使用的。我还没有尝试过HttpGet("{id}"),因为我最终会做HttpGet,Route("{id}")

我认为您拥有的是好的做法。您总是可以询问团队负责人是否有采用的命名习惯,或者浏览存储库中的其他项目以查看是否已经建立了命名约定。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。