2016-02-12 36 views
0

例如:爲了創建新用戶,標準路徑是POST/api/users/loopback - 更改預定義的遠程方法路徑

這個調用create遠程鉤等

怎麼可能到標準路徑更改爲類似POST/api/users/new/和仍保留目前的(正確)的功能?謝謝。

或者是有可能用新的遠程方法user.new()複製此功能?那看起來怎麼樣?

回答

1

添加一個遠程方法user.new並自己調用User.create()

我假設你開始使用的是(小寫)user.js和user.json模型,它是內置(大寫)用戶模型的一個擴展,它附帶了loopback。

在user.js的,是這樣的:

module.exports = function(user) { 

    user.remoteMethod('new', 
    { 
     accepts: [ 
     {arg: 'userInfo', type: 'object'} 
     ], 
     returns: { 
     arg: 'success', 
     type: 'boolean' 
     } 
    } 
); 

    user.new = function(userInfo, cb) { 

    user.create(userInfo, function(err, newUser) { 
     if(err) return cb(err, null); 

     return cb(null, true); 

    }); 

    }; 

}; 

您也可以修改REST API HTTP URL路徑結構上的遠程方法規範額外http屬性。這不是嚴格必要的,因爲該方法默認採用該方法的名稱。如果你可以修改這個來覆蓋內置的行爲,那麼會很酷,但是我還沒有測試過這是否可行。您也可以強制執行POSTing:

user.remoteMethod('new', 
    { 
    http: {path: '/new', verb: 'post'}, // <-- 
    accepts: [ 
     {arg: 'userInfo', type: 'object'} 
    ], 
    returns: { 
     arg: 'success', 
     type: 'boolean' 
    } 
    } 
);