restful web服务中的url

本文关键字:url 服务 web restful | 更新日期: 2023-09-27 18:08:12

我读过这本电子书,我读到你应该尽量限制自己使用两个基本url。如果你有测验资源你会有/quizes/quizes/{id}。然后使用HTTP动词进行操作。但是,当您尝试遵循此模式时,您如何从服务器获得动态随机问题的测验?

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

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

和路径,如/quizes"保留"返回集合(我知道REST不是一个规范),或者它是完全合法的使用/quizes生成测验服务器端并返回它?

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

restful web服务中的url

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