我已阅读此电子书,并且我已阅读过您应尝试将自己限制为两个基本网址。
因此,如果您有测验资源,则可以使用/quizes
和/quizes/{id}
。然后使用HTTP谓词进行操作。但是,当您尝试遵循此模式时,如何从服务器获得随机问题动态制作的测验?
我想要/quizes?type=random
,但是假设你希望type属性是随机默认的,你已经使用/quizes
路径来列出所有保存的quizes。
创建/quizes/generate?type=random
路径不遵循建议,我也不认为生成术语适合,因为它是动词。
返回集合的/quizes
“保留”路径(我知道REST不是规范),或者使用/quizes
生成测验服务器端并返回它是完全合法的?
答案 0 :(得分: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
的条目,它将为您提供随机测验,那么端点消费者可以使用它。