基于Java & PostgreSQL开发容器进行开发,首次创建容器时,init_users.sql会初始化数据表。
主要技术依赖:Spring Data JDBC、Spring Web、Lombok、Java JWT、Thymeleaf
CREATE TABLE users (
id SERIAL PRIMARY KEY,
fullname VARCHAR(50),
username VARCHAR(50) NOT NULL UNIQUE CHECK (username ~ '^[a-zA-Z0-9]+$'),
password_hash CHAR(32) NOT NULL,
birthdate DATE,
gender BOOLEAN NOT NULL
);Endpoint: POST /api/users
Request Body:
{
"name": "张三",
"username": "zhangsan",
"password": "123456",
"birth_date": "1990-01-01",
"gender": "M"
}Response:
{
"message": "用户创建成功",
"user_id": 1
}Endpoint: GET /api/users
Response:
[
{
"id": 1,
"name": "张三",
"username": "zhangsan",
"birth_date": "1990-01-01",
"gender": "M"
},
{
"id": 2,
"name": "李四",
"username": "lisi",
"birth_date": "1992-02-02",
"gender": "F"
}
]Endpoint: GET /api/users/{id}
Response:
{
"id": 1,
"name": "张三",
"username": "zhangsan",
"birth_date": "1990-01-01",
"gender": "M"
}Endpoint: PUT /api/users/{id}
Request Body(仅更新Request提供的字段):
{
"name": "张三丰",
"birth_date": "1990-01-01",
"gender": "M"
}Response:
{
"message": "用户信息更新成功"
}Endpoint: DELETE /api/users/{id}
Response:
{
"message": "用户删除成功"
}Endpoint: POST /api/login
Request Body:
{
"username": "zhangsan",
"password": "123456"
}Response (成功):
{
"message": "登录成功",
"user_id": 1,
"token": "jwt-token-string"
}Response (错误示例):
账号不存在:
{
"message": "账号不存在"
}