2014-12-29 62 views
3

我正在Azure移動服務中工作,我在其中創建了自定義api。對於那些可以設置權限(如公共,應用程序,用戶和管理員),這是非常有用的。但是我需要多級別的API(例如/api/user/profile/{userId}),並且能夠設置一些權限給子級別的API。Azure移動服務的自定義API中的多個路由的權限

我發現它是可以添加的API的路徑,其他各級用下面的代碼

exports.register = function (api) { 

    /* Get public user profile on some other user */ 
    api.get('/profile/:userId', getProfileFunc); 

    /* Get private profile only for the authenticated user */ 
    api.get('/profile', getProvateProfileFunc); 

    /* Update provate profile only for the authenticated user */ 
    api.put('/profile', updateProfileFunc); 
} 

exports.get = getUserListFunc; 

的API權限通過{API-name}的設置以.json文件的頂層。 但是,我怎樣才能設置一個許可的子級API 是不同的從父api?一個例證:
GET:API /用戶獲取用戶的列表,並允許應用
GET:API /用戶/ profile文件將獲取(已認證)用戶的配置文件,併爲此需要權限用戶

而且在user.json的權限

{ 
    "routes": { 
    "*": { 
     "get": {"permission": "application"}, 
     "post": {"permission": "admin"}, 
     "put": {"permission": "admin"}, 
     "patch": {"permission": "admin"}, 
     "delete": {"permission": "admin"} 
    } 
    } 
} 

我一連接到我的WAMS一個Git倉庫工作。

回答

2

.json文件支持路由。請嘗試以下操作:

{ 
    "routes": {   
     "/" : { "permission": "public" }, 
     "/user/profile/:userId" : { 
      "get": { "permission": "public" }, 
      "post": { "permission": "authenticated" } 
     } 
    } 
}