You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
6 years ago | |
|---|---|---|
| .ipynb_checkpoints | 6 years ago | |
| app | 6 years ago | |
| bin | 6 years ago | |
| config | 6 years ago | |
| db | 6 years ago | |
| lib | 6 years ago | |
| public | 6 years ago | |
| spec | 6 years ago | |
| test | 6 years ago | |
| tmp | 6 years ago | |
| vendor | 6 years ago | |
| warn | 6 years ago | |
| .gitignore | 6 years ago | |
| .merge_file_a17580 | 6 years ago | |
| Gemfile | 6 years ago | |
| README.md | 6 years ago | |
| Rakefile | 6 years ago | |
| bootstrap-datetimepicker.css | 6 years ago | |
| config.ru | 6 years ago | |
| docker-compose.yml | 6 years ago | |
| dump.rdb | 6 years ago | |
README.md
API文档
基本介绍
开发API服务地址:
https://testgitea.trustie.net/
响应状态说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| status | int | 响应状态码,0:请求成功,-1: 请求失败 |
| message | string | 响应说明 |
API接口
用户注册(通过其他平台)
POST accounts/remote_register
示例
curl -X POST \
-d "email=2456233122@qq.com" \
-d "password=djs_D_00001" \
-d "username=16895620" \
-d "platform=forge" \
http://localhost:3000/api/accounts/remote_register | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| 是 | string | 邮箱 | |
| username | 是 | string | 登录名 |
| password | 是 | string | 秘密 |
| platform | 否 | string | 用户来源的相关平台,取值范围['educoder', 'trustie', 'forge'], 默认值为forge |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| user | json object | 返回数据 |
| -- id | int | 用户id |
| -- token | string | 用户token |
返回值
{
"status": 0,
"message": "success",
"user": {
"id": 36400,
"token": "8c87a80d9cfacc92fcb2451845104f35119eda96"
}
}
获取项目类别列表(可根据名称搜素)
GET api/project_categories
示例
curl -X GET \
-d "name=大数据" \
http://localhost:3000/api/project_categories/ | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| name | 否 | string | 类别名称 |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| project_categories | array | 返回数据 |
| -- id | int | 类别id |
| -- name | string | 类别名称 |
返回值
{
"project_categories": [
{
"id": 1,
"name": "大数据"
}
]
}
获取项目语言列表(可根据名称搜素)
GET api/project_languages
示例
curl -X GET \
-d "name=Ruby" \
http://localhost:3000/api/project_languages/ | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| name | 否 | string | 类别名称 |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| project_languages | array | 返回数据 |
| -- id | int | 语言id |
| -- name | string | 语言名称 |
返回值
{
"project_languages": [
{
"id": 1,
"name": "Ruby"
}
]
}
获取.gitignore模板列表(可根据名称搜素)
GET api/ignores
示例
curl -X GET \
-d "name=Ada" \
http://localhost:3000/api/ignores/ | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| name | 否 | string | gitignore名称 |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| ignores | array | 返回数据 |
| -- id | int | id |
| -- name | string | gitignore名称 |
返回值
{
"ignores": [
{
"id": 1,
"name": "Ada"
}
]
}
获取开源许可证列表(可根据名称搜素)
GET api/licenses
示例
curl -X GET \
-d "name=AFL" \
http://localhost:3000/api/licenses/ | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| name | 否 | string | 开源许可证名称 |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| licenses | array | 返回数据 |
| -- id | int | id |
| -- name | string | 开源许可证名称 |
返回值
{
"licenses": [
{
"id": 57,
"name": "AFL-1.2"
},
{
"id": 76,
"name": "AFL-3.0"
},
{
"id": 214,
"name": "AFL-1.1"
},
{
"id": 326,
"name": "AFL-2.1"
},
{
"id": 350,
"name": "AFL-2.0"
}
]
}
创建项目
POST api/projects
示例
curl -X POST \
-d "user_id=36401" \
-d "name=好项目" \
-d "description=my first project" \
-d "repository_name=gorails" \
-d "project_category_id=1" \
-d "project_language_id=2" \
-d "ignore_id=2000" \
-d "license_id=1" \
-d "private=true"
http://localhost:3000/api/projects/ | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| user_id | 是 | int | 用户id或者组织id |
| name | 是 | string | 项目名称 |
| description | 是 | string | 项目描述 |
| repository_name | 是 | string | 仓库名称, 只含有数字、字母、下划线不能以下划线开头和结尾,且唯一 |
| project_category_id | 是 | int | 项目类别id |
| project_language_id | 是 | int | 项目语言id |
| ignore_id | 否 | int | gitignore相关id |
| license_id | 否 | int | 开源许可证id |
| private | 否 | boolean | 项目是否私有, true:为私有,false: 公开,默认为公开 |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | id |
| name | string | 项目名称 |
返回值
{
"id": 3240,
"name": "好项目"
}
新建镜像项目
POST api/projects/migrate
示例
curl -X POST \
-d "user_id=36401" \
-d "clone_addr=https://gitea.com/CasperVector/slew.git" \
-d "name=ni项目" \
-d "description=my first project" \
-d "repository_name=mirror_demo" \
-d "project_category_id=1" \
-d "project_language_id=2" \
http://localhost:3000/api/projects/migrate | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| user_id | 是 | int | 用户id或者组织id |
| name | 是 | string | 项目名称 |
| clone_addr | 是 | string | 镜像项目clone地址 |
| description | 否 | string | 项目描述 |
| repository_name | 是 | string | 仓库名称, 只含有数字、字母、下划线不能以下划线开头和结尾,且唯一 |
| project_category_id | 是 | int | 项目类别id |
| project_language_id | 是 | int | 项目语言id |
| private | 否 | boolean | 项目是否私有, true:为私有,false: 非私有,默认为公开 |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | id |
| name | string | 项目名称 |
返回值
{
"id": 3263,
"name": "ni项目"
}
项目详情
POST api/projects/:identifier
示例
curl -X GET \
-d "user_id=36401" \
-d "clone_addr=https://gitea.com/CasperVector/slew.git" \
-d "name=ni项目" \
-d "description=my first project" \
-d "repository_name=mirror_demo" \
-d "project_category_id=1" \
-d "project_language_id=2" \
http://localhost:3000/api/projects/migrate | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| user_id | 是 | int | 用户id或者组织id |
| name | 是 | string | 项目名称 |
| clone_addr | 是 | string | 镜像项目clone地址 |
| description | 否 | string | 项目描述 |
| repository_name | 是 | string | 仓库名称, 只含有数字、字母、下划线不能以下划线开头和结尾,且唯一 |
| project_category_id | 是 | int | 项目类别id |
| project_language_id | 是 | int | 项目语言id |
| private | 否 | boolean | 项目是否私有, true:为私有,false: 非私有,默认为公开 |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | id |
| name | string | 项目名称 |
返回值
{
"id": 3263,
"name": "ni项目"
}
项目类别列表(用于项目列表左侧导航中的项目类别列表)
GET api/project_categories/group_list
示例
curl -X GET http://localhost:3000/api/project_categories/group_list | jq
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | 项目分类id |
| name | string | 项目分类名称 |
| projects_count | int | 项目数量 |
返回值
[
{
"id": 1,
"name": "大数据",
"projects_count": 30
},
{
"id": 2,
"name": "机器学习",
"projects_count": 1
},
{
"id": 3,
"name": "深度学习",
"projects_count": 1
}
]
项目类型列表(用于项目列表左侧导航上方中的项目类型列表)
GET api/projects/group_type_list
示例
curl -X GET http://localhost:3000/api/projects/group_type_list | jq
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| project_type | string | 项目类型 |
| name | string | 项目类型名称 |
| projects_count | int | 项目数量 |
返回值
[
{
"project_type": "common",
"name": "开源托管项目",
"projects_count": 2106
},
{
"project_type": "mirror",
"name": "开源镜像项目",
"projects_count": 1
}
]
项目列表
GET api/projects
示例
curl -X GET \
-d "page=1" \
-d "limit=5" \
http://localhost:3000/api/projects | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| page | 否 | string | 页数,第几页 |
| limit | 否 | string | 每页多少条数据,默认15条 |
| sort_by | 否 | string | 排序类型 |
| sort_direction | 否 | string | 排序方式,取值为: desc | asc; desc: 降序排序, asc: 升序排序, 默认为:desc |
| name | 否 | string | 项目名称, 按照项目名称搜索 |
| category_id | 否 | int | 项目类别id |
| language_id | 否 | int | 项目语言id |
| project_type | 否 | string | 项目类型, 取值为:common | mirror; common:开源托管项目, mirror:开源镜像项目 |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | string | 项目标识 |
| name | string | 项目名称 |
| description | string | 项目简介 |
| visits | int | 流量数 |
| forked_count | int | 被fork的数量 |
| is_public | boolean | 是否公开, true:公开,false:未公开 |
| mirror_url | string | 镜像url |
| last_update_time | int | 最后更新时间,为UNIX格式的时间戳 |
| author | object | 项目创建者 |
| -- name | string | 用户名,也是用户标识 |
| category | object | 项目类别 |
| -- id | int | 项目类型id |
| -- name | string | 项目类型名称 |
| language | object | 项目语言 |
| -- id | int | 项目语言id |
| -- name | string | 项目语言名称 |
返回值
[
{
"id": "tongjj",
"name": "统计局",
"description": "my first project",
"visits": 0,
"forked_count": 0,
"is_public": true,
"mirror_url": null,
"last_update_time": 1577415173,
"author": {
"name": "18816895620"
},
"category": {
"id": 1,
"name": "大数据"
},
"language": {
"id": 2,
"name": "C"
}
},
{
"id": null,
"name": "开源同名",
"description": "my first project",
"visits": 0,
"forked_count": 0,
"is_public": false,
"mirror_url": "https://gitea.com/CasperVector/slew.git",
"last_update_time": 1577346228,
"author": {
"name": "18816895620"
},
"category": {
"id": 1,
"name": "大数据"
},
"language": {
"id": 2,
"name": "C"
}
},
{
"id": "mvp_demo",
"name": "开源支持",
"description": "my first project",
"visits": 0,
"forked_count": 0,
"is_public": true,
"mirror_url": null,
"last_update_time": 1577341572,
"author": {
"name": "18816895620"
},
"category": {
"id": 1,
"name": "大数据"
},
"language": {
"id": 2,
"name": "C"
}
},
{
"id": null,
"name": "ni项目1",
"description": "my first project",
"visits": 0,
"forked_count": 0,
"is_public": true,
"mirror_url": "https://gitea.com/CasperVector/slew.git",
"last_update_time": 1577092908,
"author": {
"name": "18816895620"
},
"category": {
"id": 1,
"name": "大数据"
},
"language": {
"id": 2,
"name": "C"
}
},
{
"id": "mirror_demo",
"name": "ni项目",
"description": "my first project",
"visits": 0,
"forked_count": 0,
"is_public": false,
"mirror_url": "https://gitea.com/CasperVector/slew.git",
"last_update_time": 1577085412,
"author": {
"name": "18816895620"
},
"category": {
"id": 1,
"name": "大数据"
},
"language": {
"id": 2,
"name": "C"
}
}
]
获取分支列表
GET /api/projects/:identifier/branches
示例
curl -X GET http://localhost:3000/api/projects/mirror_demo/branches | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| identifier | 是 | string | 项目标识 |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| name | string | 分支名称 |
返回值
[
{
"name": "develop"
},
{
"name": "master"
}
]
点赞
POST /api/praise_tread/like
示例
curl -X POST \
-d 'object_id=1' \
-d 'object_type=project' \
http://localhost:3000/api/praise_tread/like | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| object_id | 是 | int | 项目id |
| object_type | 否 | string | 点赞类型,默认为project |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| status | int | 0:点赞成功,-1:操作失败,2:表示已经点过赞了 |
返回值
{
"status": 0,
"message": "响应成功"
}
取消点赞
DELETE /api/praise_tread/unlike
示例
curl -X DELETE \
-d 'object_id=1' \
-d 'object_type=project' \
http://localhost:3000/api/praise_tread/unlike | jq
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| object_id | 是 | string | 点赞对象的唯一标识,如项目的identifier字段 |
| object_type | 是 | string | 点赞类型,默认为project |
返回参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| status | int | 0:点赞成功,-1:操作失败,2:表示还未点赞 |
返回值
{
"status": 0,
"message": "响应成功"
}