用于定义有效属性值的API蓝图MSON?

时间:2016-03-31 22:00:04

标签: validation attributes apiblueprint mson

请考虑摘自https://github.com/apiaryio/mson#example-1 ...

示例1

一个简单的object结构及其关联的JSON表达式。

MSON

- id: 1 - name: A green door - price: 12.50 - tags: home, green

我想说我想为name属性定义有效值。考虑使用Dredd等工具进行API测试的上下文。我们可能需要定义响应GET此资源的预期/有效name值,否则可能会出现问题,此测试步骤应该失败。

和/或,如果创建/更新此类资源,我们可能需要定义哪些name值有效/可接受。目前可以在MSON中定义吗?
(我相信这个可以在JSON模式中完成,这让我对MSON支持充满希望。)

以下是一个示例API Blueprint资源,用于说明如何使用它......

# Thing ID [/api/thing/id]

# List Thing ID attributes [GET]

    + Response 200

    + Attributes
        + href (string)
        + make (string)
        + model (string)
        + version (string)

    + Body

            {"href":"/api/thing/id","make":"BrandX","model":"SuperThingy","version":"10.1"}

在上面的示例中,model属性有3个已知/已接受/有效值:CoolThingyAwesomeThingyMLGThingy

我们可以在MSON中表示此资源,例如......

  • Apiary(或其他呈现的)API文档,消费者可以轻松了解所期望的model值?
  • Dredd进程并传递/失败对此资源的GET响应中的model值?

1 个答案:

答案 0 :(得分:1)

在MSON中,您可以使用枚举,请参阅下面的示例。

  • name(枚举[string])
    • joe(默认)
    • ben
    • mark