| Feature | Method | URL |
|---|---|---|
| Sing In | POST |
/api/v1/users/sign-in |
| Sign Up | POST |
/api/v1/users/sign-up |
| Add Schedule | POST |
/api/v1/schedules |
| Get All Schedules | GET |
/api/v1/schedules |
| Get Schedule By Id | GET |
/api/v1/schedules/{id} |
| Update Schedule by Id | PUT |
/api/v1/schedules/{id} |
| Update Schedule's Content by Id | PATCH |
/api/v1/schedules/{id} |
| Delete Schedule by Id | DELETE |
/api/v1/schedules/{id} |
| Get All Categories | GET |
/api/v1/categories |
| Method | URL |
|---|---|
POST |
https://localhost:8080/api/v1/users |
| Name | Type | Required |
|---|---|---|
| userName | String |
Y |
| password | String |
Y |
| Name | Type | Description |
|---|---|---|
| success | Boolean |
Indicates whether the request was successful. |
| message | String |
Response's Message |
| result | Result |
Response's Result |
| Name | Type | Description |
|---|---|---|
| id | Integer |
User's id |
| userName | String |
User's name |
String |
User's email |
curl -X POST https://localhost:8080/api/v1/my-info \
-H "Content-Type: application/json" \
-d '{
"userName": "youngjun",
"password": "youngjun123"
}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"success" : true,
"message" : "Response Message",
"result": {
"id": 123,
"username": "youngjun",
"email": "youngjun@gmail.com",
}
}
| Method | URL |
|---|---|
POST |
https://http://localhost:8080/api/v1/users |
| Name | Type | Required |
|---|---|---|
| userName | String |
Y |
String |
Y | |
| password | String |
Y |
| Name | Type | Description |
|---|---|---|
| success | Boolean |
Indicates whether the request was successful. |
| message | String |
Response's Message |
| result | Result |
Response's Result |
| Name | Type | Description |
|---|---|---|
| id | Integer |
User's id |
| userName | String |
User's name |
String |
User's email |
curl -X POST https://localhost:8080/api/v1/user \
-H "Content-Type: application/json" \
-d '{
"userName": "youngjun",
"email": "youngjun@gmail.com",
"password": "youngjun123"
}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"success" : true,
"message" : "Response Message",
"result": {
"id": 123,
"username": "youngjun",
"email": "youngjun@gmail.com",
}
}
| Method | URL |
|---|---|
POST |
http://localhost:8080/api/v1/schedules |
| Name | Type | Required |
|---|---|---|
| userId | Interger |
Y |
| categoryName | String |
Y |
| content | String |
Y |
| dueDate | String |
Y |
| priority | String |
N |
| status | String |
N |
| Name | Type | Description |
|---|---|---|
| success | Boolean |
Indicates whether the request was successful. |
| message | String |
Response's Message |
| result | Result |
Response's Result |
| Name | Type | Description |
|---|---|---|
| scheduleId | Integer |
Schedule's id |
| content | String |
Schedule's Content |
| dueDate | String |
Schedule's Deadline Date |
| priority | String |
Taks's Priority ["Low", "Medium", "High"] |
| status | String |
Schedule's Status ["Pending", "Progress", "Completed"] |
| categoryInfo | CategoryInfo | Taks's Category |
| userInfo | UserInfo | User's Information |
| Name | Type | Description |
|---|---|---|
| categoryId | Integer |
Category's id |
| categoryName | String |
Category's name |
| Name | Type | Description |
|---|---|---|
| userId | Integer |
User's id |
| userName | String |
User's name |
curl -X POST https://localhost:8080/api/v1/schedules \
-H "Content-Type: application/json" \
-d '{
"userId": 123,
"categoryName": "Work",
"content": "updated content body",
"dueDate": "2024-11-05",
"priority": "Medium",
"status": "Pending"
}'
HTTP/1.1 201 CREATED
Content-Type: application/json;charset=UTF-8
{
"success" : true,
"message" : "Response Message",
"result" : {
"taksId": 123,
"content": "Content body",
"dueDate": "2024-11-05",
"priority": "High",
"status": "Pending",
"categoryInfo": {
"categoryId": 1,
"categoryName": "Work",
},
"userInfo": {
"userId": 123.
"username": "youngjun",
},
}
}
| Method | URL |
|---|---|
GET |
http://localhost:8080/api/v1/schedules/{scheduleId} |
| Name | Type |
|---|---|
| scheduleId | Interger |
| Name | Type | Description |
|---|---|---|
| success | Boolean |
Indicates whether the request was successful. |
| message | String |
Response's Message |
| result | Result |
Response's Result |
| Name | Type | Description |
|---|---|---|
| scheduleId | Integer |
Schedule's id |
| content | String |
Schedule's Content |
| dueDate | String |
Schedule's Deadline Date |
| priority | String |
Taks's Priority ["Low", "Medium", "High"] |
| status | String |
Schedule's Status ["Pending", "Progress", "Completed"] |
| categoryInfo | CategoryInfo | Taks's Category |
| userInfo | UserInfo | User's Information |
| Name | Type | Description |
|---|---|---|
| categoryId | Integer |
Category's id |
| categoryName | String |
Category's name |
| Name | Type | Description |
|---|---|---|
| userId | Integer |
User's id |
| userName | String |
User's name |
curl -X GET https://localhost:8080/api/v1/schedules/1
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"success" : true,
"message" : "Response Message",
"result" : {
"taksId": 123,
"content": "Content body",
"dueDate": "2024-11-05",
"priority": "High",
"status": "Pending",
"categoryInfo": {
"categoryId": 1,
"categoryName": "Work",
},
"userInfo": {
"userId": 123.
"username": "youngjun",
},
}
}
| Method | URL |
|---|---|
GET |
http://localhost:8080/api/v1/schedules/{scheduleId}?userId={userId}&priority={priority}&status={status}&page={page}&lastScheduleId={lastScheduleId} |
| Name | Type | Required |
|---|---|---|
| userId | String |
Y |
| priority | String |
N |
| status | String |
N |
| page | Interger |
Y |
| Name | Type | Description |
|---|---|---|
| success | Boolean |
Indicates whether the request was successful. |
| message | String |
Response's Message |
| result | Result |
Response's Result |
| Name | Type | Description |
|---|---|---|
| isLast | Boolean |
True, If the list is last items in DB |
| schedules | Schedules |
Schedules's List |
| Name | Type | Description |
|---|---|---|
| scheduleId | Integer |
Schedule's id |
| content | String |
Schedule's Content |
| dueDate | String |
Schedule's Deadline Date |
| priority | String |
Taks's Priority ["Low", "Medium", "High"] |
| status | String |
Schedule's Status ["Pending", "Progress", "Completed"] |
| categoryInfo | CategoryInfo | Taks's Category |
| userInfo | UserInfo | User's Information |
| Name | Type | Description |
|---|---|---|
| categoryId | Integer |
Category's id |
| categoryName | String |
Category's name |
| Name | Type | Description |
|---|---|---|
| userId | Integer |
User's id |
| userName | String |
User's name |
curl -X GET https://localhost:8080/api/v1/schedules?userId=12&priority=Medium&status=Completed&page=1
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"success" : true,
"message" : "Response Message",
"result" : {
"taksId": 123,
"content": "Content body",
"dueDate": "2024-11-05",
"priority": "High",
"status": "Pending",
"categoryInfo": {
"categoryId": 1,
"categoryName": "Work",
},
"userInfo": {
"userId": 123.
"username": "youngjun",
},
}
}
| Method | URL |
|---|---|
PUT |
http://localhost:8080/api/v1/schedules/{scheduleId} |
| Name | Type |
|---|---|
| scheduleId | Interger |
| Name | Type | Required |
|---|---|---|
| userId | Interger |
Y |
| categoryId | Interger |
Y |
| content | String |
Y |
| dueDate | String |
Y |
| priority | String |
Y |
| status | String |
Y |
| Name | Type | Description |
|---|---|---|
| success | Boolean |
Indicates whether the request was successful. |
| message | String |
Response's Message |
| result | Result |
Response's Result |
| Name | Type | Description |
|---|---|---|
| scheduleId | Integer |
Schedule's id |
| content | String |
Schedule's Content |
| dueDate | String |
Schedule's Deadline Date |
| priority | String |
Taks's Priority ["Low", "Medium", "High"] |
| status | String |
Schedule's Status ["Pending", "Progress", "Completed"] |
| categoryInfo | CategoryInfo | Taks's Category |
| userInfo | UserInfo | User's Information |
| Name | Type | Description |
|---|---|---|
| categoryId | Integer |
Category's id |
| categoryName | String |
Category's name |
| Name | Type | Description |
|---|---|---|
| userId | Integer |
User's id |
| userName | String |
User's name |
curl -X PUT https://localhost:8080/api/v1/schedules/1 \
-H "Content-Type: application/json" \
-d '{
"userId": 123,
"categoryId": 1,
"content": "updated content body",
"dueDate": "2024-11-05",
"priority": "Medium",
"status": "Pending"
}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"success" : true,
"message" : "Response Message",
"result" : {
"taksId": 123,
"content": "updated content body",
"dueDate": "2024-11-05",
"priority": "High",
"status": "Pending",
"categoryInfo": {
"categoryId": 1,
"categoryName": "Work",
},
"userInfo": {
"userId": 123.
"username": "youngjun",
},
}
}
| Method | URL |
|---|---|
PATCH |
http://localhost:8080/api/v1/schedules/{scheduleId} |
| Name | Type |
|---|---|
| scheduleId | Interger |
| Name | Type | Required |
|---|---|---|
| userId | Interger |
Y |
| priority | String |
Y |
| Name | Type | Description |
|---|---|---|
| success | Boolean |
Indicates whether the request was successful. |
| message | String |
Response's Message |
| result | Result |
Response's Result |
| Name | Type | Description |
|---|---|---|
| scheduleId | Integer |
Schedule's id |
| content | String |
Schedule's Content |
| dueDate | String |
Schedule's Deadline Date |
| priority | String |
Taks's Priority ["Low", "Medium", "High"] |
| status | String |
Schedule's Status ["Pending", "Progress", "Completed"] |
| categoryInfo | CategoryInfo | Taks's Category |
| userInfo | UserInfo | User's Information |
| Name | Type | Description |
|---|---|---|
| categoryId | Integer |
Category's id |
| categoryName | String |
Category's name |
| Name | Type | Description |
|---|---|---|
| userId | Integer |
User's id |
| userName | String |
User's name |
curl -X FETCH https://localhost:8080/api/v1/schedules/1 \
-H "Content-Type: application/json" \
-d '{
"userId": 123,
"priority": "High",
}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"success" : true,
"message" : "Response Message",
"result" : {
"taksId": 123,
"content": "updated content body",
"dueDate": "2024-11-05",
"priority": "High",
"status": "Pending",
"categoryInfo": {
"categoryId": 1,
"categoryName": "Work",
},
"userInfo": {
"userId": 123.
"username": "youngjun",
},
}
}
| Method | URL |
|---|---|
DELETE |
http://localhost:8080/api/v1/schedules/{scheduleId} |
| Name | Type |
|---|---|
| scheduleId | Interger |
| Name | Type | Required |
|---|---|---|
| userId | Interger |
Y |
| Name | Type | Description |
|---|---|---|
| success | Boolean |
Indicates whether the request was successful. |
| message | String |
Response's Message |
| result | Result |
Response's Result |
| Name | Type | Description |
|---|---|---|
| scheduleId | Integer |
Schedule's id |
curl -X DELETE https://localhost:8080/api/v1/schedules/1 \
-H "Content-Type: application/json" \
-d '{
"userId": 123,
}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"success": true,
"message": "Response Message",
"result": {
"scheduleId": 0
}
}
| Method | URL |
|---|---|
GET |
http://localhost:8080/api/v1/categories |
| Name | Type | Description |
|---|---|---|
| success | Boolean |
Indicates whether the request was successful. |
| message | String |
Response's Message |
| result | Result |
Response's Result |
| Name | Type | Description |
|---|---|---|
| cateogries | Categories |
List of Category Info |
| Name | Type | Description |
|---|---|---|
| categoryId | Integer |
Category's id |
| categoryName | String |
Category's name |
curl -X GET https://localhost:8080/api/v1/categories
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"success": true,
"message": "Response Message",
"categories": [
{
"categoryId": 1,
"categoryName": "Work",
},
{
"categoryId": 2,
"categoryName": "Hobby",
},
{
"categoryId": 3,
"categoryName": "Chore",
}
]
}
| HTTP Status | Message | Description |
|---|---|---|
| 400 | Invalid request data | One or more required fields are missing or invalid |
| 400 | Invalid parameter | An invalid or missing parameter, e.g., scheduleId |
| 401 | Unauthorized access | Incorrect or missing authentication credentials |
| 401 | Permission denied | User lacks permission to modify this schedules |
| 403 | Forbidden | User action not allowed |
| 404 | User not found | User with the given ID was not found |
| 404 | Schedule not found | Schedule with the specified ID does not exist |
| 404 | Category not found | Category with the specified ID does not exist |
| 409 | Duplicate entry | User or schedules already exists |
| 500 | Internal server error | General server error |
| 503 | Service unavailable | Database or required service is currently unavailable |