Я создаю успокоительный веб-сервис для создания и чтения отчетов, сделанных из приложения. При создании отчета можно добавить с ним конфиденциальную информацию, такую как имя, номер телефона, почту и т. Д. После создания отчета он становится общедоступным с помощью той же веб-службы.Отремонтированный веб-сервис, частичный Разрешение на чтение
POST /report
{
"name":"test",
"email":"[email protected]",
"report_contents":....
}
возвращает 200 OK с:
{
"id":1,
"report_contents":....
}
и способу получения вышеуказанного отчета: GET/отчет/{REPORT_ID}
У меня есть другое приложение, с которым администратор может управлять отчеты, созданные с помощью предыдущего веб-сервиса. В этом приложении я хотел бы отобразить конфиденциальную информацию. Он использует следующий URL-адрес для получения конкретного отчета.
GET /report/{report_id}
который возвращает 200 OK:
{
"id":1,
"name":"test",
"email":"[email protected]",
"report_contents":....
}
Теперь есть вопрос. Это тот же самый url. Возможно ли, традиционно или даже неплохо использовать один и тот же веб-сервис для обоих вызовов, но с ним какое-то управление CRUD, где в зависимости от роли пользователя часть информации не отображается/блокируется? Или было бы лучше сделать отдельный веб-сервис с ограничениями?
То, что вы говорите, имеет большой смысл. Я забыл упомянуть, что я буду защищать API с помощью ключа API или Oauth2. Основываясь на роли, я верну все, что им разрешено видеть. – Terabyte
Не является ли двусмысленность проблемой при определении модели для возврата? – Terabyte
Неоднозначность где?Клиент REST должен иметь возможность принимать различные представления. – Joe