一種新的 RESTful 許可權設計討論

2021-09-16 23:49:25 字數 1036 閱讀 4301

根據restful的相關風格規範, 我們將請求對映為以下幾種操作

get     /users/                ----->  `list.users` 

get /users/:id/ -----> `retrieve.users`

post /users/ -----> `create.users`

put /users/:id/password/ -----> `replace.users`

patch /users/:id/ -----> `update.users`

delete /users/:id/ -----> `destroy.users`

如果後端以mvc模式進行開發, 那麼我們可以對映如下控制器

`list.users`        ----->  list(users) 

`retrieve.users` -----> retrieve(user,id)

`create.users` -----> create(users)

`replace.users` -----> replace(users,id,field)

`update.users` -----> update(users,id)

`destroy.users` -----> destroy(users,id)

許可權的管理採用傳統的rbac模式

身份驗證,返回具體user或者anonymous,接下來我們把這一步返回的user都作為正常user

驗證請求許可權,即上述驗證請求許可權對映

驗證資源存在性與所屬權, 這裡存在爭議.

資源存在性與所屬權放到控制器裡還是作為中介軟體放到控制器之前?

請求許可權對映有哪些需要改進的地方?

能否將整個認證鑑權流程規範化?

一種新的設計模式 newtype

概述 設計模式是在編寫 時在各種不同情況下出現的模式。在本文中,我將討論 newtype 設計模式。具體來說,我將以 rust 程式語言為背景來討論它,以及如何解決在 rust 中使用 newtype 模式時出現的一些問題。rust 的設計模式 程式設計設計模式是指在編寫 時在各種不同情況下出現的模...

一種新的乘法

做厭了乘法計算題的卡特,有一天突發奇想,創造了一種新的乘法運算法則。在這套法則裡,x y等於乙個取自x 乙個取自y的所有數字對的乘積的和。比方說,123 45等於1 4 1 5 2 4 2 5 3 4 3 5 54。對於2個給定的數x y 1 x,y 長整型最大數 你的任務是,用新的乘法法則計算x ...

一種新的測試理念

文章分類 軟體開發管理 效能測試可以增加一種新的測試理念,當我們做乙個破壞性測試時,確定乙個破壞點以及相關策略,會得到乙個期望的測試結果。這是測試系統的健壯性。但如果我們輸入的是乙個不確定的破壞點,該輸入會遵循業務邏輯自身繁殖和變異,會產生無法預知的破壞性時,我們這個測試就是不止對系統自身的健壯性的...