我正在尝试使用Api Blueprint和Drakov的组合来模拟API。但是,对于一个特定端点,我事先不知道请求有效负载是什么。请参阅以下代码。
# Group Stuff
Description about stuff.
## Main Stuff Resource [stuff/{userId}/response/{responseId}]
+ Parameters
+ userId: specialUser (string, required) - ID of user
+ responseId: 0f9d78ee-005056ad6f10 (string, required) - ID for a particular response.
### Submit Survey Form [POST]
+ Attributes
+ attribute1 (array[object]) - Description for attribute 1
+ attribute2 (array[object]) - Description for attribute 1
+ Request (application/json)
{attribute1:[],attribute2[]}
+ Response 201 (text/plain; charset=utf8)
+ Headers
X-XSS-Protection: 0
Vary:Origin,Accept-Encoding
Access-Control-Allow-Credentials:true
+ Body
http://fakeurl.com
上述代码有效,但仅当请求有效负载完全 {attribute1:[],attribute2:[]}
时才有效。即使是不同的whitespacing似乎也会提示,向用户返回404
并从Drakov返回错误日志:[WARNING] JSON body could not be parsed. Using body as is.
我已尝试删除Attributes
部分,移除Request
部分,从Request
部分删除JSON示例,删除除Response
部分以外的所有内容,以及使用Schema
部分。这些似乎都不起作用,我在API蓝图文档中找不到任何提及。
如果我不知道请求有效负载的格式或attribute1
和attribute2
的内容,我怎么能始终将该响应返回到该端点的POST请求会是吗?
答案 0 :(得分:1)
嘿@LanceLafontaine我是Drakov的维护者之一。
您是否尝试将请求更改为{ "attribute1": [], "attribute2": [] }
(在Blueprint API规范文件中)
随时在Drakov回购http://github.com/Aconex/drakov/issues
上发布一个问题我查看解析代码已经有一段时间了,但我认为Drakov不会解析Attribute
部分,它会尝试匹配Request
部分根据你发布的内容。