网站提供宁静的网络服务

时间:2013-04-09 17:37:13

标签: c# java web-services rest

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

我想要/quizes?type=random,但是假设你希望type属性是随机默认的,你已经使用/quizes路径来列出所有保存的quizes。

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

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

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

1 个答案:

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