我們有一個基於動態對象的系統 - 所以有一個描述這些對象的元數據表。例如 - 組織A可以有一個倉庫對象,一個客戶對象和一個銷售對象。組織B可以有一個銷售對象和一個小丑對象。oData,Yii2和動態對象
用戶驗證我們在Yii2框架上構建的其餘api。他們使用/ user/authenticate調用進行身份驗證,然後他們使用/ object/for list/create和/ object //爲Read,Update,Delete查詢對象。
問題是:如果開發人員要集成到服務中,他們需要知道組織中已定義的所有對象,包括他們可以讀取/寫入的可用字段。我們想要做的是提供一個選項來描述我們的數據。
E.g.我最初的想法是公開像/ object/metadata這樣的東西,在這些東西中,我會用允許用戶訪問的json資源列表進行響應,例如倉庫用戶將看到倉庫,客戶,銷售。組織B用戶可以看到Sales,Clown。
我被要求看看oData作爲這個規範,但oData似乎定義了一個事物(url,搜索和過濾等)的整體約定。
是否有意義實施部分oData規範或將其用作指南並保持我們的URL相同? 是否有oData規範的一部分可用於描述動態資源(例如,如果用戶使用我們的系統向Sales對象添加列 - api應反映該列)。
希望瞭解如何設計/處理此需求的任何想法。
謝謝!
我們已經實施了RBAC系統。問題在於使用oData規範來描述REST api –
對於實體使用odata.editLink和odata.readLink。如果沒有定義odata.editLink - 實體不能編輯。 對於字段添加自己的odata.editablefileds。 – uldis
我們已經決定推出我們自己的描述符 - 是否記錄了odata.editablefields? –