设计资源层次结构时,什么情况下应该使用子资源?
我曾经认为,当一个资源不能存在于另一个资源之外时,应该将其表示为其子资源。但是,最近我遇到了这个反例:
- 每位员工在所有公司中都是唯一可识别的。 - 员工的访问控制和生命周期取决于公司。
我将其建模为:
我曾经认为,当一个资源不能存在于另一个资源之外时,应该将其表示为其子资源。但是,最近我遇到了这个反例:
- 每位员工在所有公司中都是唯一可识别的。 - 员工的访问控制和生命周期取决于公司。
我将其建模为:
/companies/{companyName}/employee/{employeeId}
注意,我不需要查找公司就可以定位员工,那我应该吗?如果我这样做,我就要付出查找我不需要的信息的代价。如果我不这样做,这个URL会错误地返回HTTP 200:
/companies/{nonExistingName}/employee/{existingId}
1. 如何表示一个资源“属于”另一个资源?
2. 如何表示一个资源“无法识别”而不依赖于另一个资源?
3. 子资源意味着什么关系,又不适用于哪些关系?