集中管理项目前后端API

Johnson 4b8ecdb504 修改文档作业api微小bug 7 лет назад
assignment 4b8ecdb504 修改文档作业api微小bug 7 лет назад
codeHomework 864a7c3ceb 代码作业更新' 7 лет назад
course ab15a22820 [更新] 遗留的各种todo 7 лет назад
exam 419263c209 [修改]题目api 7 лет назад
problem 4bb868ce1b [merge] 7 лет назад
question 4f7067ae87 [新增]题目难度定义 7 лет назад
review a5bb8366bd [更新] 加字段:是否已经提过argue 7 лет назад
user ab15a22820 [更新] 遗留的各种todo 7 лет назад
.gitignore e1dcd979d2 新增 review api 7 лет назад
README.md 13286b1451 新增数据定义规范 7 лет назад
prefix.md 9f32196c09 修改部分url 7 лет назад
tmp-问题列表.md 4ccf1dc7ff add error 7 лет назад

README.md

API-DOC

集中前后端 api

维护成员须知

文件夹管理须知

  1. 每个后端负责人创建并维护自己的文件夹
  2. 每个前端负责人协助维护各自负责的文件夹

文件结构管理须知

每个小组文件夹下 建议

  1. README 声明负责人
  2. api 文件夹 (用于存放所有 api)
  3. serializer 文件夹 (用于存放所有 api 中提到的对象 细则)

example:

user
├── README.md
├── api
│   └── User-用户.md
└── serializer
    └── UserSerializer.md

api 规范

前缀与规范

  1. 所有后端 api 务必至少添加前缀:/api
  2. restful 规范, 以数据为中心,每个数据 务必 返回 id
  3. 所有返回值均为 对象禁止 使用 bool string array等类型作为json返回值

数据定义

  1. serializer 中说明数据格式

api 文件命名

[模块英文命名]-[解释].md

example: User-用户.md

api 文件内容结构

# 命名

> url 前缀:**user**
>
> 示例:**https://xxxxxxxxx/api/user/xxxx**

##  请求名称

⬇️ 为路径参数格式 :userId 表示变量 

```http
post /:userId
```

### Parameters

⬇️ 为 post body 中的参数格式

```json
{
  "nickname": "nickname",
  "avatar": "xxxxxxxxxx",
  "bio": "小白白白白白白白白白白白"
}
```

⬇️ 为问号传参格式 example: user?userId=1

| Name   | Type   | Description       |
| ------ | ------ | ----------------- |
| userId | number | 查看用户的所有tag |


### Response

```json
{
  "data": UserSerializer
}
```

see [UserSerializer](./user/serializer/UserSerializer.md)

## 请求名称

etc...

serializer文件结构

example

# UserSerializer

用户的基本信息

## Attributes

- id : **Number** - 用户 id
- role : **String** - 身份类型 [ STUDENT - 学生用户, TEACHER - 教师用户]
- username : **String** - 用户名
- nickname : **String** - 昵称
- bio : **String **- 用户自我描述
- avatar : **String** - 头像 URL
- createdAt : **String** - 创建时间
- updatedAt : **String** - 更新时间