目前我有一種方法,接受ModelA
並知道對它執行操作。斯卡拉的最佳做法是什麼將有一種方法接受兩種不同的模型
因此,在我的控制器中,我接受ModelA
的請求並使用它調用此方法。
現在,我想能夠接受ModelB
的請求,將請求映射爲ModelA
(導致它具有相同的數據,而不是全部和不同的名稱),並調用此方法。
可以說,該方法將如下所示:
def myMethod(data: ModelA): ResModel = {
// do something with data
}
我控制器currrently是:
def doActions(): Action[JValue] = { request =>
val dataExctracted = request.body.extract[ModelA]
myMethod(dataExctracted)
...
}
和我的兩個型號都是在單獨的文件只是case類:
case class ModelA(a: String, b: String, c: String)
case class ModelB(aAsDifferentName: String, bAsDifferntName: String)
Scala的最佳實踐是讓myMethod接受兩種模型(沒有Either
)?以及控制器應該如何反應?
是否還有一種經典的方式來返回不同的模型,而不必接受不同控制器方法中的調用?
謝謝!
讓他們實現一個虛擬特質並對類型進行模式匹配。 –
你如何決定從request.body中提取什麼類型? – laughedelic