2
休息級在玩Framework項目,我有處理REST請求控制器,一個例子是:斯卡拉特質在播放
object AddressBean extends Controller with RestTrait{
def list = Action {
val list = Addresses.findAll()
Ok(Json.toJson(list.map(s => Json.toJson(s)(AddressJson.addressWrites))))
}
def create = Action {
Ok("")
}
}
(請注意,我只是把OK(「」)編譯,我必須執行它們,就像我實現的列表方法)。
我想定義一個特點,所有這些REST類來實現同樣的方法,我開始喜歡:
/**
* Define an interface for all of our REST classes.
*/
trait RestTrait extends Controller{
/**
* List entities.
*/
def list
/**
* Create entity. Get entity from request.body
*/
def create
//and so on
}
的問題是,我收到一條警告說Unit does not take parameters
讓我明白,我從特質方法
/**
* Define an interface for all of our REST classes.
*/
trait RestTrait extends Controller{
/**
* List entities.
*/
def list = Action{
Ok("")
}
/**
* Create entity. Get entity from request.body
*/
def create = Action{
Ok("")
}
//and so on
}
是不是有什麼辦法避免這樣的特質定義方法:所以我最終確定他們想應該有一個動作的返回類型?因爲那時我必須在我的課程中使用override
。我主要想implement
而不是override
那些方法...