如何在API BluePrint的模式中重用对象?

时间:2015-07-13 12:01:01

标签: markdown apiblueprint apiary.io dredd aglio

我创建了一个API,它提供了一个名为" Thumbnail"的资源。 (/缩略图)

{
    "name": "toto",
    "uri": "http://xxx"
}

另一方面,我有多个资源,其中包含缩略图资源(例如/ articles,/ videos ...):

{
    "name": "playlist",
    "thumbnail": 
    {
        "name": "toto",
        "uri": "http://xxx"
    }
}

当我在BluePrint markdown中编写这些web服务的模式时,我希望能够重用我为Thumbnail模式创建的模式,以便不重复模式中的代码。 我是Trait功能的核心(https://github.com/apiaryio/api-blueprint/issues/47),但我不知道它是否符合我的需求,是否适用于aglio和dredd。

你知道我的最好的事情吗?

3 个答案:

答案 0 :(得分:10)

您可以使用API​​蓝图的MSON部分中的Attributes来定义可重复使用的对象。

您可以在hereherehere中看到一些示例。

答案 1 :(得分:0)

所以我更新了我的dredd并测试了MSON。看起来很酷很有效。我对这个md只有一个问题:

# Data Structures

## Video (object)
Definition of a video
+ id: 11111 (number) - The unique key
+ description: "my video" (string) - Free text of video
+ truc: "ffff" (string)

# Group VideosTest

## Videos List [/videos]
List of videos

### List of videos [GET]

+ Response 200 (application/json)

    + Attributes (array[Video])

测试不会失败,但我没有属性" truc"在我的真实API中,我有一个属性URL。所以我期望测试失败。我错了吗 ?

答案 2 :(得分:0)

我举个例子:

我的md:

# Data Structures

## Video (object)
Definition of a video
    + id: 11111 (number, required) - The unique key
    + description: "my video" (string, required) - Free text of video
    + truc: "ffff" (string, required)

## A video [/videos/{id}]
See a video

+ Parameters

    + id (required, string, `a-la-decouverte-des-metiers-projection-du-film`) ... L'id ou le slug de la video

### Select a video [GET]

+ Response 200 (application/json)

    + Attributes (Video)

我的API:

{
"id": "1111",
"description": "description of the video",
"uri": "http://"
}

测试没问题,但我想要dredd !!!

的错误