当前位置:  开发笔记 > 编程语言 > 正文

在文档中对API方法进行分组 - 是否存在一些自定义属性

如何解决《在文档中对API方法进行分组-是否存在一些自定义属性》经验,为你挑选了2个好方法。



1> Andriy Tolst..:

您还可以使用SwaggerOperationAttribute:

public class UserController : ApiController
{
    [Route("api/user")]
    [SwaggerOperation(Tags = new[] { "User" })]
    IHttpActionResult GetUser() { ... }
}

public class ResumeController : ApiController
{
    [Route("api/user/resumes")]
    [SwaggerOperation(Tags = new[] { "User" })]
    IHttpActionResult GetResumes() { ... }
}



2> Ondrej Svejd..:

有一种方法 - 尽管没有魔术属性 - 您可以更改swagger启动配置中的默认分组规则,以便引入您自己的自定义属性.

GlobalConfiguration.Configuration 
 .EnableSwagger(c => {
   c.GroupActionsBy(apiDesc => apiDesc
     .GetControllerAndActionAttributes().Any() ?
        apiDesc.GetControllerAndActionAttributes
/// Forces method to be displayed within specified group, regardless of controller
/// 
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class MethodGroupAttribute : Attribute
{
    /// 
    /// Group name
    /// 
    public string GroupName { get; private set; }

    /// 
    /// ctor
    /// 
    /// 
    public MethodGroupAttribute(string groupName)
    {
        if (string.IsNullOrEmpty(groupName))
        {
            throw new ArgumentNullException("groupName");
        }
        GroupName = groupName;
    }
}

用法:

[Route("api/user")]
[MethodGroup("User")]
IHttpActionResult GetUser() { ... }

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有