为两种角色设计 api - 患者和医生

Design api for two roles - patients and doctors

我正在为我的项目设计一个新网站 api。

在我的应用程序中,我有两个角色(患者和医生)。每个用户只能分配一个角色。

每个用户都有自己的个人资料。

患者可以编辑、查看个人资料,还可以查看医生个人资料。 医生也是一样。

api应该是什么样子?

/api/patient/pro文件 GET:查看个人资料的数据

/api/patient/edit-profile GET:编辑个人资料的数据 PUT:编辑个人资料

医生也会这样。

我想将两个角色分开 api。 对于患者总是:/api/patient 对于医生总是:/api/doctor

当医生要读取患者数据时出现问题。

/api/doctor/patient/profile?userId=xxx

这种做法?

谢谢

后端:Asp核心 2.1 前端:React JS

查看在为 API 验证用户时使用用户角色。 OAuth 2.0 令牌将是一个不错的选择,只需将范围应用于每个角色。

当某人注册为患者时,他们可以访问某些数据和端点,而如果某人注册为医生。使用用户凭据授予颁发访问令牌,然后在用户实际请求某些内容时检查范围。

您甚至可以使用不同级别的医生权限,如果这是为美国的医生构建的,那么有人可以使用这些权限来帮助实现 HIPAA 合规性。这样您就可以在不暴露一些医疗信息的情况下显示一定程度的详细患者信息。

播客在 API 秒内解释 OAuth:http://fullstackradio.com/episodes/4/

在 stackoverlow 和 stackexchange 的安全部分也有相当多的问题和答案,讨论如何使用 OAuth 在您的 API 中实现角色和范围。

这个问题是主观的,因为没有一种 "correct" 的方法可以做到,每个人都会有不同的看法。但是,有一些最佳实践可以遵循,并且根据给定的信息,以下是我将如何为您的 API 设计 URI。

患者

/api/patients/{id}
/api/patients/{id}/profiles

医生

/api/doctors/{id}
/api/doctors/{id}/profiles
/api/doctors/{id}/patients
/api/doctors/{id}/patients/{patientid}/profiles

访问这些资源的授权应由 OAuth 2.0 + OpenID 使用声明和范围处理。

这里是一些 URI 最佳实践的 link - https://blog.restcase.com/7-rules-for-rest-api-uri-design/