6

我创建了一个 API,它提供了一个名为“Thumbnail”(/thumbnails)的资源

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

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

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

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

你知道在我的情况下最好的办法吗?

4

3 回答 3

10

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

您可以在此处此处此处查看一些示例。

于 2015-07-13T14:21:39.150 回答
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])

测试没有失败,但我的真实 API 中没有属性“truc”,并且我有一个属性 URL。所以我预计测试会失败。我错了吗 ?

于 2015-07-13T15:44:42.800 回答
0

我举个例子:

我的医学博士:

# 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出错!!!

于 2015-07-16T11:08:11.923 回答