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

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

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

诸如/quizes这样的路径是否“保留”到返回的集合中(我知道REST不是规范),或者使用/quizes生成测验服务器端并返回它完全合法吗?

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

最佳答案

/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的条目,该条目将为您提供随机测验,则端点使用者可以使用它。

10-08 19:17