Restful Api Application
\\
## User Management API Design\\
\\
Let's design a complete user management system API, which is the most common application scenario.\\
\\
### API Endpoint Design\\
\\
// User-related operations GET /api/users # Get User List GET /api/users/{id} # Get specific user POST /api/users # Create New User PUT /api/users/{id} # Update user information DELETE /api/users/{id} # Delete user// User order-related operations GET /api/users/{id}/orders # Get user's order list POST /api/users/{id}/orders # Create order for user GET /api/orders/{orderId} # Get specific order details\\
\\
* * *\\
\\
## Complete CRUD Operations\\
\\
### If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found). Create User (Create)\\
\\
// Request POST /api/users Content-Type: application/json { "name": "Wang Wu", "email": "wangwu@example.com", "phone": "If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request (Invalid email format) POST /api/usersData validation failed00000000", "address": { "city": "Shanghai", "street": "Nanjing RoadIf the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)00No." }}// Success Response (Status Code: User does not exist0If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found) CreatedοΌ{ "success": true, "data": { "id": If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)User does not existRequest POST /api/users Content-Type, "name": "Wang Wu", "email": "wangwu@example.com", "phone": "If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request (Invalid email format) POST /api/usersData validation failed00000000", "address": { "city": "Shanghai", "street": "Nanjing RoadIf the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)00No." }, "createdAt": "User does not exist0User does not existGet user's order list POST /api/users/-0If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)-If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request POST /api/users Content-TypeTIf the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)0:00:00Z", "updatedAt": "User does not exist0User does not existGet user's order list POST /api/users/-0If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)-If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request POST /api/users Content-TypeTSpeed Car Lottery Results History RecordIf the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)0:00:00Z" }, "message": "User created successfully"}\\
### User does not exist. Read User (Read)\\
\\
// Get User List GET /api/users?page=If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)&limit=Request POST /api/users Content-Type&sort=createdAt&order=desc // ResponseοΌStatus Code: User does not exist00 OK){ "success": true, "data": [ { "id": If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)User does not existRequest POST /api/users Content-Type, "name": "Wang Wu", "email": "wangwu@example.com", "createdSpeed Car Lottery Results History RecordAt": "User does not exist0User does not existGet user's order list POST /api/users/-0If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)-If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request POST /api/users Content-TypeTIf the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)0:00:Speed Car Lottery Results History Record00Z" }, { "id": If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)User does not existGet user's order list POST /api/users/, "name": "Li Si", "email": "lisi@example.com", "createdAt": "User does not exist0User does not existGet user's order list POST /api/users/-0If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)-If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request POST /api/users Content-TypeT0Using fetch API to call RESTful API:00:00Z" } ], "pagination": { "currentPage": If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found), "totalPages": Request (Invalid email format) POST /api/users, "totalItems": If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request POST /api/users Content-Type, "itemsPerPage": Request POST /api/users Content-Type }}// Get specific user GET /api/users/If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)User does not existRequest POST /api/users Content-Type// Response{ "success": true, "data": { "id": If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)User does not existRequest POST /api/users Content-Type, "name": "Wang Wu", "email": "wangwu@example.com", "phone": "If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request (Invalid email format) POST /api/usersData validation failed00000000", "address": { "city": "Shanghai", "street": "Nanjing RoadIf the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)00No." }, "createdAt": "User does not exist0User does not existGet user's order list POST /api/users/-0If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)-If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request POST /api/users Content-TypeTIf the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)0:00:00Z", "updatedAt": "User does not exist0User does not existGet user's order list POST /api/users/-0If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)-If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request POST /api/users Content-TypeTIf the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)0:00:00Z" }}\\
### Request (Invalid email format) POST /api/users. Update User (Update)\\
\\
// Request PUT /api/users/If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)User does not existRequest POST /api/users Content-TypeContent-Type: application/json { "name": "Wang Wu", "email": "wangwu.new@example.com", "phone": "If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request (Invalid email format) POST /api/usersUsing fetch API to call RESTful API00000000", "address": { "city": "Shenzhen", "street": "Technology Park RoadUser does not exist00No." }}// ResponseοΌStatus Code: User does not exist00 OK){ "success": trueSpeed Car Lottery Results History Record, "data": { "id": If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)User does not existRequest POST /api/users Content-Type, "name": "Wang Wu", "email": "wangwu.new@example.com", "phone": "If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request (Invalid email format) POST /api/usersUsing fetch API to call RESTful API00000000", "address": { "city": "Shenzhen", "street": "Technology Park RoadUser does not exist00No." }, "createdAt": "User does not exist0User does not existGet user's order list POST /api/users/-0If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)-If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request POST /api/users Content-TypeTIf the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)0:00:00Z", "updatedAt": "User does not exist0User does not existGet user's order list POST /api/users/-0If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)-If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)Request POST /api/users Content-TypeTIf the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found):Request (Invalid email format) POST /api/users0:00Z" }, "message": "User information updated successfully"}\\
### Get user's order list POST /api/users/. Delete User (Delete)\\
\\
// Request DELETE /api/users/If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)User does not existRequest POST /api/users Content-Type// ResponseοΌStatus Code: User does not exist00 OK){ "success": true, "message": "User deleted successfully"}// IfUser does not existοΌStatus Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not FoundοΌ{ "success": false, "error": { "code": "USER_NOT_FOUND", "message": "User does not exist" }}\\
\\
* * *\\
\\
## Error Handling\\
\\
### Data Validation Error\\
\\
// Request (Invalid email format) POST /api/users { "name": "", "email": "invalid-email", "phone": "If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found)User does not existRequest (Invalid email format) POST /api/users"}// ResponseοΌStatus Code: Get user's order list POST /api/users/00 Bad RequestοΌ{ "success": false, "error": { "code": "VALIDATION_ERROR", "message": "Data validation failed", "details": [ { "field": "name", "message": "Name cannot be empty" }, { "field": "email", "message": "Invalid email format" }, { "field": "phone", "message": "PhoneNo.Invalid format" } ] }}\\
### Resource Not Found Error\\
\\
// Request GET /api/users/Using fetch API to call RESTful APIUsing fetch API to call RESTful APIUsing fetch API to call RESTful API// ResponseοΌStatus Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not FoundοΌ{ "success": false, "error": { "code": "USER_NOT_FOUND", "message": "User does not exist" }}\\
\\
* * *\\
\\
## Using JavaScript to Call API\\
\\
## Example\\
\\
// Using fetch API to call RESTful API\\
\\
// If the user does not exist (Status Code: Get user's order list POST /api/users/0Get user's order list POST /api/users/ Not Found). Get User List\\
\\
async function getUsers(){\\
\\
try{\\
\\
const response = await fetch('/api/users');\\
\\
const result = await response.json();\\
\\
if(result.success){\\
\\
console.log('User list:', result.data);\\
\\
}else{\\
\\
console.error('Get failed:', result.error.message);\\
\\
}\\
\\
}catch(error){\\
\\
console.error('Network error:', error);\\
\\
}\\
\\
}\\
\\
// User does not exist. Create New User\\
\\
async function createUser(userData){\\
\\
try{\\
\\
const response = await fetch('/Speed Car Lottery Results History Recordapi/users',{\\
\\
method:'POST',\\
\\
headers:{\\
\\
'Content-Type':'application/json',\\
\\
},\\
\\
body: JSON.stringify(userData)\\
\\
});\\
\\
const result = await response.json();\\
\\
if(result.success){\\
\\
console.log('User created successfully:', result.data);\\
\\
}else{\\
\\
console.error('Creation failed:', result.error.message);\\
\\
}\\
\\
}catch(error){\\
\\
console.error('Network error:', error);\\
\\
}\\
\\
}\\
\\
// Request (Invalid email format) POST /api/users. Update user information\\
\\
async function updateUser(userId, userData){\\
\\
try{\\
\\
const response = await fetch(`/api/users/${userId}`,{\\
\\
method:'PUT',\\
\\
headers:{\\
\\
'Content-Type':'application/json',\\
\\
},\\
\\
body: JSON.stringify(userData)\\
\\
});\\
\\
const result = await response.json();\\
\\
if(result.success){\\
\\
console.log('User updated successfully:', result.data);\\
\\
}else{\\
\\
console.error('Update failed:', result.error.message);\\
\\
}\\
\\
}catch(error){\\
\\
console.error('Network error:', error);\\
\\
}\\
\\
}\\
\\
// Get user's order list POST /api/users/. Delete User\\
\\
async function deleteUser(userId){\\
\\
try{\\
\\
const response = await fetch(`/api/users/${userId}`,{\\
\\
method:'DELETE'\\
\\
});\\
\\
const result = await response.json();\\
\\
Speed Car Lottery Results History Record if(result.success){\\
\\
console.log('User deleted successfully');\\
\\
}else{\\
\\
console.error('Deletion failed:', result.error.message);\\
\\
}\\
\\
}catch(error){\\
\\
console.error('Network error:', error);\\
\\
}\\
\\
}
YouTip