【问题标题】:How to reference enum value in API Blueprint(MSON)如何在 API Blueprint(MSON) 中引用枚举值
【发布时间】:2019-01-17 09:41:38
【问题描述】:

我正在使用 API BlueprintAgilo 来呈现我的 API 文档。使用枚举类型时,我观察到一种奇怪的行为。响应未显示定义的枚举值,而架构也显示了所有枚举值(这是预期的)以及声明的值('Monday'-Refer Actual)。

数据结构部分

# Data Structures

## Days (enum[string])
+ `Monday`
+ `Tuesday`
+ `Wednesday`
+ `Thursday`

## ListEntry
- playOrder: 1 (number)
- Id: 37a21975a499494f03367 (string)
- programDay: `Tuesday` (Days)

## `sample-request-200`
- id: 58828b2941cc351348 (string)
- startDate: `2019-08-01T11:00:00.000Z` (string)
- endDate: `2019-08-05T11:55:59.000Z` (string)
- Language: `en-US` (string)
- entries: ListEntry (array[object])

API 请求文档部分

+ Request
+ Headers

        Content-Type: application/json

+ Attributes (sample-request-200)

实际

---- JSON Body ----  

    {
      "playOrder": 1,
      "Id": "37a21975a499494f03367",
      "programDay": "Hello, world!" // Agilo shows "Hello,World" when some error occurred
    }

-----Generated Schema-----  

"programDay": {
              "type": "string",
              "enum": [
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday",
                "Monday"
              ]
            }

希望

 ---- JSON Body ----
    {
      "playOrder": 1,
      "Id": "37a21975a499494f03367",
      "programDay": "Monday"
    }


-----Generated Schema-----  

"programDay": {
              "type": "string",
              "enum": [
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday"
              ]
            }

关于如何使用 API 蓝图 (MSON) 中定义的枚举数据结构的任何想法。不确定如何在 Object 中引用枚举值。

如下引用枚举值是否正确?

- programDay: `Tuesday` (Days)

【问题讨论】:

  • 它在 apiary.io 编辑器中工作吗? Aglio 现在没有维护,因此可能缺乏对 API 蓝图功能的支持 github.com/danielgtaylor/aglio/commit/…
  • 即使在 apiary.io 编辑器中,枚举值也会像 Agilo 一样重复。但是定义的值会显示在 JSON 响应中。
  • 这方面有什么进展吗?刚刚也陷入了这个困境。

标签: apiblueprint apiary.io mson aglio


【解决方案1】:

结构:

# Data Structures
## Device (enum)
+ `mobile`
+ `desktop`

这样使用:

+ Request (multipart/form-data)
    + Attributes
        + `id`: abc (required)
        + `device` (Device)

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多