0

我已阅读这本电子书,并且我已阅读您应该尝试将自己限制在两个基本 URL 中。因此,如果您有测验资源,您将拥有/quizesand /quizes/{id}。然后使用 HTTP 动词进行操作。但是,当您尝试遵循这种模式时,您将如何从服务器获得由随机问题动态生成的测验?

我认为/quizes?type=random,但是假设您希望 type 属性是可选的,默认为 random,并且您已经使用该/quizes路径来列出所有已保存的测验。

创建/quizes/generate?type=random路径不遵循建议,我认为生成术语也不适合,因为它是动词。

并且是诸如/quizes“保留”之类的返回集合的路径(我知道 REST 不是规范),还是/quizes用于生成测验服务器端并返回它是完全合法的?

http://apigee.com/about/content/web-api-design

4

1 回答 1

1

应该做的是为您/quizzes提供一个 URL 列表,让您可以访问不同的测验,所以假设您已经定义了/quizzes返回的媒体类型是 JSON 像这样(可能是特定类型,如application/json+quiz):

{ 
    quizzes = [
        { description: "Quiz 1", url: "/quizzes/1" },
        { description: "Quiz 2", url: "/quizzes/2" }
    ]
}

所以你可以有一个条目,让你访问一个随机测验,可以是这样的:

{ 
    quizzes = [
        { description: "Quiz 1", url: "/quizzes/1" },
        { description: "Quiz 2", url: "/quizzes/2" },
        { description: "Random", url: "/quizzes/random" },
    ]
}

这个想法是有一个 REST 端点,所有后续 URL 都是通过语义媒体类型发现的。因此,如果您的媒体类型指定将有一个带有描述的条目Random会给您一个随机测验,那么端点消费者可以使用它。

于 2013-04-09T18:02:47.353 回答