UserResponse.java
Springboot/bookstore-api/src/main/java/com/example/bookstore/dto/UserResponse.java
package com.example.bookstore.dto;
import com.example.bookstore.entity.User;
/**
* 「使用者資料」的回應 DTO。
*
* 注意:這裡「刻意」不包含 password 欄位!
* 即使存的是 BCrypt 雜湊值,也絕對不應該回傳給客戶端。
* 這正是「用 DTO 而不是直接回傳 Entity」的典型好處。
*/
public record UserResponse(
Long id,
String username,
String email,
String role
) {
/** 靜態工廠方法:Entity → DTO */
public static UserResponse from(User user) {
return new UserResponse(
user.getId(),
user.getUsername(),
user.getEmail(),
user.getRole().name()
);
}
}
Bài viết liên quan
BookstoreApiApplication.java
BookstoreApiApplication.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/BookstoreApiApplication.java).
Đọc bài viết →DataInitializer.java
DataInitializer.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/config/DataInitializer.java).
Đọc bài viết →SecurityConfig.java
SecurityConfig.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/config/SecurityConfig.java).
Đọc bài viết →AuthController.java
AuthController.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/controller/AuthController.java).
Đọc bài viết →BookController.java
BookController.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/controller/BookController.java).
Đọc bài viết →ApiErrorResponse.java
ApiErrorResponse.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/dto/ApiErrorResponse.java).
Đọc bài viết →