11

我试图通过不同的参数获得不同的响应,但有些东西不起作用。

这是我的 API:

## Question [/questions/{question_id}]

A Question object has the following attributes:

+ Parameters
    + question_id: `1` (number, required) - ID of the Question in form of an integer

### View a Questions Detail [GET]

+ Request

+ Header

    X-Custom-Header : 1

+ Response 200 (application/json)

        {
            "id": "1",
            "name": "Marco"
        }


+ Request

+ Header

    X-Custom-Header : 2

+ Response 200 (application/json)

        {
            "id: "2",
            "name": "Lucas"
        }

但是当调用 /questions/1 或 /questions/2 时,响应总是相同的:

{
    "id": "1",
    "name": "Marco"
}

怎么了?

谢谢

4

2 回答 2

3

你的蓝图没有任何问题。恐怕 Apiary Mock 相当简单,并且总是默认返回指定的第一个响应(内容协商允许)。

请参阅 Apiary http://support.apiary.io/knowledgebase/articles/117119-handling-multiple-actions-on-a-single-resource上的“调用非默认响应”以了解如何调用(按需)另一个响应.

另请注意,API 蓝图中有一个建议的语法来明确说明哪些参数值与特定响应相关联 – https://github.com/apiaryio/api-blueprint/issues/58

然而,目前尚不清楚 Apiary 的 mock 是否会利用这一点。

于 2015-06-18T11:54:01.680 回答
2

我相信有一个简单的解决方案可以在不使用标题的情况下做到这一点:

创建不同的资源(每条记录一个),因此每个资源都会生成一个 URL。

## Note20 [/notes/20]

### Get notes20 [GET]

+ Response 200 (application/json)

        {
            "id" : 20,
            "name" : "note xxxx"
        } 

## Note21 [/notes/21]

### Get notes21 [GET]

+ Response 200 (application/json)

        {
            "id" : 21,
            "name" : "note yyyyy"
        } 
于 2015-06-19T10:35:27.417 回答