0

ApiaryIO 规范(实际上是它所指向的 RFC)表明您不能使用“.”。在参数名称中,您需要将其编码为“%2E”。这很好,但似乎存在一个错误,即 Apiary 只能处理一种这样的编码。例如,以下

## Notes Collection [/notes{?foo%2Ebar}]

产生以下代码示例

request = Request('http://private-d1ee7-testingnewapiary.apiary-mock.com/notes?foo.bar=foo.bar')

哪个是对的。然而,以下

## Notes Collection [/notes{?foo%2Ebar,baz%2Ebla}]

产生此代码示例:

request = Request('http://private-d1ee7-testingnewapiary.apiary-mock.com/notes?foo%252Ebar=foo%252Ebar&baz%252Ebla=baz%252Ebla')

请注意,在第一个代码示例中您看到它有“foo.bar”,但在第二个示例中它有“foo%252Ebar”,这是不正确的。

此处的下游影响是将不正确的 URI 发送到 API 服务器,因此响应格式错误,从而产生错误。

如何在 URI 模板上对许多包含“.”的参数进行编码并且仍然获得正确的代码示例?

4

1 回答 1

0

为这些参数添加显式示例值会有帮助吗?

例如:

## Notes Collection [/notes{?foo%2Ebar,baz%2Ebla}]
+ Parameters
    + foo%2Ebar (`42`)
    + baz%2Ebla (`24`)

更新

这似乎是文档/代码示例呈现方式的错误。我在这里创建了跟踪问题https://github.com/apiaryio/language-templates/issues/36

于 2015-01-27T23:11:40.737 回答