如何在REST API中建模全局资源?

时间:2013-05-14 00:06:06

标签: api rest model

REST似乎最关注资源集合 - 事物列表。如何在系统中模拟一次存在的东西?更具体地说,非常简单。假设建模系统是一个教室,其中有学生,1名教师,以及一扇打开或关闭的门。如何塑造门?我想它会像下面那样:

GET and POST operations are supported.
GET https://<ipaddress>/classroom/door_status
    Returns 200 if successful, with a response containing:
        DoorStatus - String - Value of door status, either "Open" or "Closed"
POST https://<ipaddress>/classroom/door_status
    Specify the attribute of:
        DoorStatus - String - Value of desired door status, "Open" or "Closed"
    Returns 201 if the status was successfully modified.

DELETE总是会失败。

一间教室当然可以有多扇门,但暂时忍受我。当然,带教室的建筑通常有多个教室。再次忍受我。

接下来,我们可能会为教室添加light_status资源。鉴于这种情况很可能,我们应该从“global_properties”资源开始,该资源会改为使用DoorStatus和LightStatus属性。

感谢您提供建议,帮助或(特别)示例。 ...艾伦

1 个答案:

答案 0 :(得分:0)

我认为REST中没有任何内容可以使单个实例实体成为非法或不合需要的。也就是说,在您的特定示例中,您需要评估门和灯是否正确:

  1. 他们自己的实体是否相关但是独立于班级 OR
  2. 只是类的属性或包含的对象没有自己的身份,其存在取决于类的存在
  3. 第二种选择对我来说似乎更合理。如果我们接受它,那么您可以将灯光和门状态作为类属性的一部分返回:

    GET /class -- Returns the class attributes, including light and door status
    PUT /class -- updates class attributes, including light and door status