Дизайн API для двух ролей - пациентов и врачей - PullRequest
0 голосов
/ 17 февраля 2019

Я создаю новый веб-API для своего проекта.

В моем приложении у меня две роли (пациент и врач).Каждому пользователю может быть назначена только одна роль.

Каждый пользователь имеет собственный профиль.

Пациент может редактировать свой профиль, просматривать, а также просматривать профиль врача.Доктор то же самое.

Как должен выглядеть API?

/ API / пациента / профиля GET: данные для просмотра профиля

/ API / пациента / редактирования профиля GET: данные для редактирования профиля PUT: редактировать профиль

У доктора все будет так же.

Я хочу разделить API для обеих ролей.Для пациента всегда: / api / пациента Для доктора всегда: / api / doctor

Проблема возникает, когда врач хочет прочитать данные пациента.

/ api / doctor / пациента / профиль? UserId= xxx

этот подход?

Спасибо

Бэкэнд: Asp Core 2.1 Фронтенд: React JS

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Этот вопрос субъективен, поскольку не существует «правильного» способа сделать это, и у всех будут разные мнения.Но есть лучшие практики, которым нужно следовать, и, исходя из предоставленной информации, вот как я бы подошел к дизайну URI для вашего API.

Пациент

/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 - https://blog.restcase.com/7-rules-for-rest-api-uri-design/

0 голосов
/ 17 февраля 2019

Обратите внимание на использование пользовательских ролей при аутентификации пользователя для API.Токены OAuth 2.0 были бы хорошим выбором и просто применяли бы области действия для каждой роли.

Когда кто-то регистрируется как пациент, он имеет доступ к определенным данным и конечным точкам, если кто-то регистрируется как врач.Используйте пользовательские полномочия для выдачи токена доступа, а затем проверьте область действия, когда пользователь действительно запрашивает что-либо.

Вы можете даже использовать различные уровни разрешений «Доктор», которые кто-то может использовать для достижения соответствия HIPAA, если он создается.для врачей в США.Таким образом, вы можете показать уровень подробной информации о пациенте, не раскрывая некоторую медицинскую информацию.

Подкаст, объясняющий OAuth в API: http://fullstackradio.com/episodes/4/

Существует также немало вопросов и ответов в безопасности.часть stackoverlow и stackexchange, в которой рассказывается о том, как реализовать роли и область действия в ваших API с помощью OAuth.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...