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.
educoder/README.md

5.9 KiB

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 "phone=18816895620" \
-d "platform=forge" \
http://localhost:3000/api/accounts/remote_register  | jq

请求参数说明:

参数名 必选 类型 说明
email string 邮箱
phone 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=好项目" \
-d "description=my first project" \
-d "repository_name=gorails" \
-d "project_category_id=1" \
-d "project_language_id=2" \
-d "private=true"
http://localhost:3000/api/projects/  | 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": 3240,
  "name": "好项目"
}