API Documentation
This document provides detailed information about the API endpoints available in the Youxue Server. Each endpoint’s purpose, method, URL, request parameters, and response format are described to assist frontend developers in integrating with the backend.
Base URL
secret
Endpoints
General
Get API Information
- Method: GET
- URL:
/
- Description: Returns a list of all available endpoints.
- Request Parameters: None
- Response:
{ "title": "Youxue Server API", "intro": "A database-backed API with the following endpoints", "routes": [ "GET /", "POST /register", "GET /checkUsername", "POST /login", "GET /diaries", "POST /diaries", "PUT /diaries/:id/view", "PUT /diaries/:id/rate", "GET /diaries/recommended", "DELETE /diaries/:id", "PUT /area/:id/views", "PUT /area/:id/goods", "PUT /area/:id/bads", "POST /area", "PUT /area/:id/updateViews", "PUT /area/:id/updateGoods", "PUT /area/:id/updateBads", "GET /area/:id/getViews", "GET /area/:id/getGoods", "GET /area/:id/getBads" ] }
User Management
Register User
- Method: POST
- URL:
/register
- Description: Registers a new user.
- Request Parameters:
- Body:
{ "username": "string", "password": "string" }
- Body:
- Response:
Or{ "success": true, "userId": "number" }
{ "success": false, "error": "Username is already taken." }
Check Username
- Method: GET
- URL:
/checkUsername
- Description: Checks if a username exists.
- Request Parameters:
- Query:
username
: string
- Query:
- Response:
Or{ "userId": "number" }
{ "error": "Username does not exist." }
Login
- Method: POST
- URL:
/login
- Description: Logs in a user.
- Request Parameters:
- Body:
{ "username": "string", "password": "string" }
- Body:
- Response:
Or{ "userId": "number" }
{ "error": "Invalid username or password." }
Diaries Management
Get Diaries
- Method: GET
- URL:
/diaries
- Description: Retrieves a list of all diaries.
- Request Parameters: None
- Response:
{ "diaries": [ { "id": "number", "title": "string", "content": "string", "authorId": "number", "views": "number", "rating": "number" } ] }
Add Diary
- Method: POST
- URL:
/diaries
- Description: Adds a new diary.
- Request Parameters:
- Body:
{ "diary": { "title": "string", "content": "string" }, "authorId": "number" }
- Body:
- Response:
Or{ "diaryId": "number" }
{ "error": "Failed to add diary!" }
View Diary
- Method: PUT
- URL:
/diaries/:id/view
- Description: Increases the view count of a diary.
- Request Parameters:
- URL:
id
: number
- URL:
- Response:
Or{ "success": true }
{ "error": "Failed to update view count." }
Rate Diary
- Method: PUT
- URL:
/diaries/:id/rate
- Description: Rates a
diary.
- Request Parameters:
- URL:
id
: number
- Body:
{ "rating": "number" }
- URL:
- Response:
Or{ "success": true }
{ "error": "Failed to update rating." }
Get Recommended Diaries
- Method: GET
- URL:
/diaries/recommended
- Description: Retrieves a list of recommended diaries.
- Request Parameters: None
- Response:
{ "diaries": [ { "id": "number", "title": "string", "content": "string", "authorId": "number", "views": "number", "rating": "number" } ] }
Delete Diary
- Method: DELETE
- URL:
/diaries/:id
- Description: Deletes a diary.
- Request Parameters:
- URL:
id
: number
- URL:
- Response:
Or{ "success": true }
{ "error": "Failed to delete diary." }
Area Management
Add Area
- Method: POST
- URL:
/area
- Description: Adds a new area.
- Request Parameters:
- Body:
{ "name": "string" }
- Body:
- Response:
Or{ "areaId": "number" }
{ "error": "Failed to add area!" }
Increment Area Views
- Method: PUT
- URL:
/area/:id/views
- Description: Increases the view count of an area.
- Request Parameters:
- URL:
id
: number
- URL:
- Response:
Or{ "success": true }
{ "error": "Failed to update view count." }
Increment Area Goods
- Method: PUT
- URL:
/area/:id/goods
- Description: Increases the goods (likes) count of an area.
- Request Parameters:
- URL:
id
: number
- URL:
- Response:
Or{ "success": true }
{ "error": "Failed to update goods count." }
Increment Area Bads
- Method: PUT
- URL:
/area/:id/bads
- Description: Increases the bads (dislikes) count of an area.
- Request Parameters:
- URL:
id
: number
- URL:
- Response:
Or{ "success": true }
{ "error": "Failed to update bads count." }
Update Area Views
- Method: PUT
- URL:
/area/:id/updateViews
- Description: Updates the view count of an area.
- Request Parameters:
- URL:
id
: number
- Body:
{ "views": "number" }
- URL:
- Response:
Or{ "success": true }
{ "error": "Failed to update views." }
Update Area Goods
- Method: PUT
- URL:
/area/:id/updateGoods
- Description: Updates the goods (likes) count of an area.
- Request Parameters:
- URL:
id
: number
- Body:
{ "goods": "number" }
- URL:
- Response:
Or{ "success": true }
{ "error": "Failed to update goods." }
Update Area Bads
- Method: PUT
- URL:
/area/:id/updateBads
- Description: Updates the bads (dislikes) count of an area.
- Request Parameters:
- URL:
id
: number
- Body:
{ "bads": "number" }
- URL:
- Response:
Or{ "success": true }
{ "error": "Failed to update bads." }
Get Area Views
- Method: GET
- URL:
/area/:id/getViews
- Description: Retrieves the view count of an area.
- Request Parameters:
- URL:
id
: number
- URL:
- Response:
Or{ "views": "number" }
{ "error": "Failed to get views." }
Get Area Goods
- Method: GET
- URL:
/area/:id/getGoods
- Description: Retrieves the goods (likes) count of an area.
- Request Parameters:
- URL:
id
: number
- URL:
- Response:
Or{ "goods": "number" }
{ "error": "Failed to get goods." }
Get Area Bads
- Method: GET
- URL:
/area/:id/getBads
- Description: Retrieves the bads (dislikes) count of an area.
- Request Parameters:
- URL:
id
: number
- URL:
- Response:
Or{ "bads": "number" }
{ "error": "Failed to get bads." }
Notes
- Ensure to handle error responses properly on the frontend to provide a good user experience.
- The IDs used in the URL parameters should be numeric values representing the corresponding resources in the database.