在Web API中处理枚举标志的最佳方法是什么

时间:2017-03-06 09:18:07

标签: asp.net-web-api swagger nswag

我在我的网络API上使用了一些标记枚举,到目前为止,我所看到的只是改变了作为数组传递的标志的组合值。

有没有办法以更友好的.NET / C#方式声明它?也许使用collectionFormat=csv

修改1

想象一下,我有这个枚举:

[Flags]
public enum Directions
{
    Up = 1,
    Down = 2,
    Left = 4,
    Right = 8,
}

这个C#方法作为API公开:

public class Request
{
    Directions Directions {get; set; }
}

public void SetAvailableDirections(Request request)
{
    // ...
}

因为参数有多个值,所以它应该是array但是如果我可以构建一个将collectionFormat设置为csv的swagger规范,那么它可以是array就swagger而言,C#/ CLR中有一个普通的旧标志。

这可能吗?

修改2

使用Service Stack它会(就像我曾经被使用它的人告诉过的那样):

[Flags]
public enum Directions
{
    Up = 1,
    Down = 2,
    Left = 4,
    Right = 8,
}

public class Request
{
    [ApiMember(Name = nameof(Directions), AllowMultiple = true, ...)]
    [ApiAllowableValues(nameof(Directions), typeof(Directions))]
    Directions Directions {get; set; }
}

0 个答案:

没有答案