如何在URI模板中表达允许的值

时间:2014-02-20 23:23:18

标签: json api rest hateoas

我正在研究REST API,我正在寻找一种方法来为URI模板中的变量提供客户端允许的值。当变量表示枚举时,这很有用。目前,客户端返回一组链接作为返回给它的JSON对象的一部分,我想做这样的事情:

"Links":
[
    {
        "Title":"Search Articles",
        "HREF":"example.com/articles/search?keywords={keywords}&mode={mode|["allWords", "anyWords", "exactPhrase"]}"
    }
]

或者这个:

"Links":
[
    {
        "Title":"Search Articles",
        "HREF":"example.com/articles/search?keywords={keywords}&mode={mode}"
        "Fields":
        [
            {
                "Name":"keywords",
                "Type":"Text"
            },
            {
                "Name":"mode", 
                "Type":"Enum", 
                "Options":["allWords", "anyWords", "exactPhrase"]
            }
        ]
    }
]

This是我找到答案的最接近的东西,但我希望能有更多官方的东西。

我也一直在寻找the IETF standards doc的URI模板,这看起来很官方,但看起来并不能解决这个问题。

1 个答案:

答案 0 :(得分:0)

看起来我将使用JSON Hyper-Schema.按照this answer,的建议,您可以使用他们定义的Properties元素来完成我所追求的目标。

我还查看了HAL, Collection+JSON, Siren,,但我更喜欢JSON Hyper-Schema,因为它坚持使用一系列链接,而不是想出新的东西。