我的应用程序具有以下结构 -
用户属于部署,并且他在该部署中具有角色(读取,完整等)。然后,每个部署都属于一个组织。
我正在编写一个API,允许用户添加到现有组织中。
在添加用户时,最终用户可以发送role_id
,deployment_id
,organization_id
。在任何给定的时间点,用户只能添加到一个组织,但可以将它们添加到该组织中的多个部署中。对于每个部署,用户可以拥有不同的角色。
这些ID中的每一个实际上都是UUIDv4。现在,作为编写API的人,我有责任在尝试插入这些UUID之前验证每个UUID是否有效且属于现有组织/部署/角色?我们在数据库上定义了适当的外键引用,就够了吗?依赖外键的问题在于,我无法以更有意义的方式响应API用户。
答案 0 :(得分:0)
服务器应检查是否满足添加用户的所有前提条件。 如何这样做不是REST猜测。您可以依赖数据库约束,您可以实现业务逻辑。
重要的是,如果由于不满足前提条件而无法添加用户,则REST服务器必须返回正确的响应。 HTTP的状态代码是
409 Conflict
响应正文应包含有关为什么未满足的前提条件的信息。此信息可以是结构化数据,例如JSON。