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中有任何东西使单实例实体非法或不受欢迎。也就是说,在您的特定示例中,您需要评估门和灯是否:
- 是与类相关但独立于类的实体,或
- 只是类的属性或包含对象,没有自己的标识,其存在依赖于类的存在
第二个选项对我来说似乎更合理。如果我们接受它,那么你可以返回灯和门的状态作为类属性的一部分:
GET /class -- Returns the class attributes, including light and door status
PUT /class -- updates class attributes, including light and door status