标签: dredd

什么是Api Blueprint可以理解的二维键值格式?

我正在使用Api Blueprint为RESTful搜索API开发api文档.我希望能够将过滤器传递给API,以便我可以组装:

filter[filtername1]=filtervalue1
filter[filtername2]=filtervalue2
Run Code Online (Sandbox Code Playgroud)

根据这个问题,我使用了百分比编码的方括号,但与这个问题不同,我们不可能描述每个可能的键名:

创建Blueprint API doc时如何在URL中格式化基于哈希的参数?

我希望密钥名称是可变的,因为它可以是源数据中的任何字段.这有用吗?

## Key-Value-Test [/api/v1/keyvaluetest?term={term}&filter%5B{field_name}%5D={field_value}]

+ term
+ filter_field
+ filter_value
Run Code Online (Sandbox Code Playgroud)

这样的二维数组是否有推荐的格式?这似乎不适用于Dredd,因为+ filter_field它不匹配filter[filter_field]

rest url apiblueprint dredd

10
推荐指数
2
解决办法
606
查看次数

如何用api蓝图格式描述会话?

我目前正试图描绘一个现有的API apiary.io.系统通过登录请求实现身份验证,该请求返回包含会话ID的http-cookie.

据我所知,标准是浏览器在发出另一个请求时将之前从主机收到的所有http-cookies发送回给他.

看来,在运行我的蓝图文件生成的测试时,Dredd不会这样做.因此,任何需要用户登录的请求都无法正常进行测试.

是否有可能将请求标记为"在运行此请求之前需要"以强制Dredd管理这些http-cookies?

顺便说一句,REST服务是在Sails.js一个mvc框架中实现的node.js.

apiary.io sails.js apiblueprint apiary dredd

6
推荐指数
1
解决办法
661
查看次数

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

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

{
    "name": "toto",
    "uri": "http://xxx"
}
Run Code Online (Sandbox Code Playgroud)

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

{
    "name": "playlist",
    "thumbnail": 
    {
        "name": "toto",
        "uri": "http://xxx"
    }
}
Run Code Online (Sandbox Code Playgroud)

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

你知道在我的情况下做的最好的事情吗?

markdown apiary.io apiblueprint dredd aglio

6
推荐指数
1
解决办法
2244
查看次数

Openapi3 和 CSV 响应(针对 Dredd)

我根据 DREDD 的规范测试我的 Api(考虑到Dredd 支持的痛苦限制,用 Openapi3 编写)。不,我有一个端点,如果 Accept-header 设置为如此,它会生成 CSV 数据。

    '/my-endpoint':
        summary: ...
        description: ...
        get:
 #          parameters:
 #              - 
 #                  in: header
 #                  name: Accept
 #                  description: "Response format: application/json or text/csv"
 #                  example: "text/csv"
            responses:
                '200':
                    description: ...
                    content:
                        text/csv:
                            schema:
                                type: string
                            example:
                                summary: 'csv table'
                                value: 'cell1, cell2'

Run Code Online (Sandbox Code Playgroud)

当我使用 Dredd 运行测试时,测试失败并显示


expected: 
headers: 

body: 
[
  {
    "key": "summary",
    "value": "csv table"
  },
  {
    "key": "value",
    "value": "cell1, cell2"
  }
]
statusCode: 200

Run Code Online (Sandbox Code Playgroud)

显然存在一些误解,Dredd …

dredd openapi

1
推荐指数
1
解决办法
3486
查看次数

Dredd将尾随方括号传递给API

我正在使用Dredd来测试我编写的API.它工作正常,直到我尝试改变资源中的动作uri.当我有一个表格的动作

## Retrieve Task [GET /task/{id}]
Run Code Online (Sandbox Code Playgroud)

它向]附加的Drakov发送请求.这个Drakov服务器正在运行蓝图文档.

Drakov 0.1.16      Listening on port 8090
[LOG] GET /task/myid]
[LOG] DELETE /task/myid]
[LOG] GET /task/myid]
Run Code Online (Sandbox Code Playgroud)

你可以看到这个请求最后有一个额外]的.

这是我的蓝图.它是Api Blueprint示例中示例的一个子集:

FORMAT: 1A

# Advanced Action API
A resource action is – in fact – a state transition. This API example demonstrates an action - state transition - to another resource.

## API Blueprint

# Tasks [/tasks/tasks{?status,priority}]

+ Parameters
    + status  `test` (string)
    + priority `1` (number)

## Retrieve Task …
Run Code Online (Sandbox Code Playgroud)

apiblueprint dredd

0
推荐指数
1
解决办法
112
查看次数

标签 统计

dredd ×5

apiblueprint ×4

apiary.io ×2

aglio ×1

apiary ×1

markdown ×1

openapi ×1

rest ×1

sails.js ×1

url ×1