Finatra中控制器的自定义响应

时间:2016-05-28 22:13:46

标签: scala finatra

在我的应用程序中,我有一个自定义案例类,如下所示,还有一堆其他字段。

case class User(id: UUID, username: String, password: String)

现在,我的Finatra控制器获取服务返回的响应,并发送包含密码哈希的JSON响应。控制器是最基本的

get("/users") {request: GetUsersRequest =>
    userService.users()
}

所以我的问题是如何自定义此响应,以便我可以删除密码字段并添加一些其他数据。

1 个答案:

答案 0 :(得分:1)

假设userService.users()返回用户列表。即List[User]然后使用map转换回复。

例如,您可以映射到新的案例类。

case class UserDTO(id: UUID, username: String, comment: String)

如果您还不想使用课程,也可以mapTuple

get("/users") {request: GetUsersRequest =>
    userService.users().map(u => UserDTO(u.id, u.username, "Comment!"))
}