Skip to content

Project Management

CRUD interfaces for managing projects.

Get Project List

Get project list for backend management (including drafts).

Interface Information

  • Endpoint: GET /api/admin/projects
  • Authentication: Required (admin permission)

Query Parameters

ParameterTypeRequiredDescription
pagenumberNoPage number, default 1
limitnumberNoItems per page, default 10
statusstringNoStatus filter: published/draft
keywordstringNoKeyword search

Create Project

Create new project.

Interface Information

  • Endpoint: POST /api/admin/projects
  • Authentication: Required (admin permission)

Request Parameters

ParameterTypeRequiredDescription
titlestringYesProject title
descriptionstringYesProject description
contentstringNoProject detailed content (Markdown)
coverImagestringNoCover image URL
demoUrlstringNoDemo link
repoUrlstringNoCode repository link
techStackarrayNoTechnology stack tags
statusstringNoStatus: published/draft, default draft

Request Example

bash
curl -X POST http://localhost:3000/api/admin/projects \
  -H "Authorization: Bearer your-jwt-token" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "My New Project",
    "description": "Project description",
    "techStack": ["Vue.js", "TypeScript"],
    "status": "published"
  }'

Update Project

Update existing project.

Interface Information

  • Endpoint: PUT /api/admin/projects/:id
  • Authentication: Required (admin permission)

Request Parameters

Same as create project, all fields optional.

Request Example

bash
curl -X PUT http://localhost:3000/api/admin/projects/1 \
  -H "Authorization: Bearer your-jwt-token" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Updated Title",
    "status": "published"
  }'

Delete Project

Delete specified project.

Interface Information

  • Endpoint: DELETE /api/admin/projects/:id
  • Authentication: Required (admin permission)

Request Example

bash
curl -X DELETE http://localhost:3000/api/admin/projects/1 \
  -H "Authorization: Bearer your-jwt-token"

Error Responses

HTTP Status CodeDescription
401Not logged in or token invalid
403Insufficient permission (non-admin)
404Project does not exist
400Parameter error
500Server error