如果您有一个REST APIthat is (HATEOAS),您可以通过在响应 ( )hypermedia-driven中包含或省略链接来轻松更改客户的行为。_links这使客户端能够完全忘记测试在当前状态下可能执行的操作的权限(操作resource的链接是否存在)。
此外,如果当前用户无权查看它,您可以在响应中省略属性。
这样授权完全在服务器上完成(并控制有资格执行/查看的操作和属性)。
但是,如果我想拥有read-only房产怎么办?REST API如果请求(_POST_或_PUT_)中存在该属性,则忽略该属性是没有问题的。它只是不会被保存。但是客户端如何区分写入和只读属性以向用户呈现适当的控件(如禁用的输入字段在HTML)?
目标是永远不会拥有client request用户的权限,而是拥有完全由资源驱动的client/frontend.
任何帮助是极大的赞赏 :-)