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



REST似乎主要关注资源集合——事物列表。如何对系统中只存在一次的东西进行建模?更具体地说,是一些非常简单的东西。假设建模的系统是一个教室,其中有学生、一名教师和一扇门,门可以打开,也可以关闭。一个人该如何模拟门呢?我想应该是这样的:

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属性。

感谢您的建议、帮助或(特别是)示例. ...Alan

我不认为REST中有任何东西使单实例实体非法或不受欢迎。也就是说,在您的特定示例中,您需要评估门和灯是否:

  1. 是与类相关但独立于类的实体,
  2. 只是类的属性或包含对象,没有自己的标识,其存在依赖于类的存在

第二个选项对我来说似乎更合理。如果我们接受它,那么你可以返回灯和门的状态作为类属性的一部分:

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

最新更新