在数据键 API Blueprint / Apiary 中包装数据结构

Wrapping Data Structure in a data key API Blueprint / Apiary

假设我有一个 200 响应,正文应该是:

{
  "data": [
    {
      "id": 1,
      "title": "Activity 1"
    },
    {
      "id": 1,
      "title": "Activity 2"
    }
  ]
}

我已经通过在 API 蓝图中使用它来获得响应主体的这种行为。

+ Response 200 (application/json)
    + Attributes
        + data (array[Activity])

(请注意,我不能将数据键添加到数据结构本身,因为它只存在于单个响应中。如果我需要将 Activity 嵌套在另一个结构中,它不应该有数据密钥。)

这好像不对

我认为这不是正确的做法的原因是因为此响应的 JSON 架构是:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array"
    }
  }
}

请注意如何排除实际的 activity。

如何将我的响应正确地包装在数据键中,并使其同时反映在正文和模式中?

你应该使用这一行:

+ data(array[Activity], fixed-type)

fixed-type关键字确定数组中项目的类型。