S SmartDocs
Series: Springboot java 28 lines · Updated 2026-08-14

RegisterRequest.java

Springboot/bookstore-api/src/main/java/com/example/bookstore/dto/RegisterRequest.java

package com.example.bookstore.dto;

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;

/**
 * 「註冊新使用者」的請求 DTO。
 * 對應 POST /api/auth/register 的請求本文(Request Body)。
 */
public record RegisterRequest(

        @NotBlank(message = "帳號不可為空白")
        @Size(min = 3, max = 20, message = "帳號長度須為 3~20 字元")
        @Pattern(regexp = "^[a-zA-Z0-9_]+$",
                 message = "帳號只能包含英文字母、數字與底線")
        String username,

        @NotBlank(message = "密碼不可為空白")
        @Size(min = 8, max = 64, message = "密碼長度須為 8~64 字元")
        String password,

        @NotBlank(message = "Email 不可為空白")
        @Email(message = "Email 格式不正確")
        String email
) {
}

Related articles