REST API

CP语言 API 文档

通过我们的 REST API,您可以在自己的应用中集成 CP 语言的强大功能。

版本: v1 | 基础URL: https://cplang.org/api

快速开始

所有 API 请求都需要通过 HTTPS 发送。基础 URL 为:

https://cplang.org/api

示例请求

curl -X GET "https://cplang.org/api/version" \
  -H "Accept: application/json"
fetch('https://cplang.org/api/version')
  .then(response => response.json())
  .then(data => console.log(data));
import requests

response = requests.get('https://cplang.org/api/version')
data = response.json()
print(data)

基本信息

GET /api/version

获取版本信息

获取CP语言的当前版本信息

响应示例

{
    "name": "CP Language",
    "version": "1.0.0",
    "codename": "Phoenix",
    "release_date": "2024-01-15"
}
GET /api/features

获取特性列表

获取CP语言支持的所有特性

响应示例

{
    "features": [
        "中文关键字",
        "类型推断",
        "模式匹配",
        "协程支持"
    ]
}

代码执行

POST /api/execute
需要认证

执行代码

在服务器端执行CP语言代码

请求参数

参数名 类型 必填 描述
code string 要执行的CP代码
timeout integer 执行超时时间(秒),默认30

响应示例

{
    "success": true,
    "output": "你好,世界!\n",
    "execution_time": 0.023
}
POST /api/validate

验证代码

验证CP代码的语法正确性

请求参数

参数名 类型 必填 描述
code string 要验证的CP代码

响应示例

{
    "valid": true,
    "errors": []
}

包管理

GET /api/packages

获取包列表

获取所有可用的包列表

请求参数

参数名 类型 必填 描述
page integer 页码,默认1
per_page integer 每页数量,默认20
search string 搜索关键词

响应示例

{
    "packages": [
        {
            "name": "http",
            "version": "1.2.0",
            "description": "HTTP客户端和服务器",
            "downloads": 15234
        }
    ],
    "total": 156,
    "page": 1,
    "per_page": 20
}
GET /api/packages/{name}

获取包详情

获取指定包的详细信息

请求参数

参数名 类型 必填 描述
name string 包名(URL参数)

响应示例

{
    "name": "http",
    "version": "1.2.0",
    "description": "HTTP客户端和服务器",
    "author": "CP Team",
    "license": "MIT",
    "dependencies": [],
    "readme": "# HTTP Package..."
}

用户

POST /api/auth/login

用户登录

用户登录并获取访问令牌

请求参数

参数名 类型 必填 描述
username string 用户名
password string 密码

响应示例

{
    "token": "eyJhbGciOiJIUzI1NiIs...",
    "expires_in": 3600,
    "user": {
        "id": 1,
        "username": "admin"
    }
}
GET /api/user/profile
需要认证

获取用户信息

获取当前登录用户的信息

响应示例

{
    "id": 1,
    "username": "admin",
    "email": "admin@example.com",
    "created_at": "2024-01-15T08:00:00Z"
}

认证

部分 API 端点需要认证。您可以通过以下方式提供认证信息:

Bearer Token

Authorization: Bearer YOUR_ACCESS_TOKEN

获取 Token

首先调用登录接口获取访问令牌:

curl -X POST "https://cplang.org/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "your_username",
    "password": "your_password"
  }'

错误码

状态码 名称 描述
200 OK 请求成功
400 Bad Request 请求参数错误
401 Unauthorized 未授权,需要登录
403 Forbidden 禁止访问
404 Not Found 资源不存在
429 Too Many Requests 请求过于频繁
500 Internal Server Error 服务器内部错误

错误响应格式

{
    "error": {
        "code": "INVALID_REQUEST",
        "message": "请求参数错误",
        "details": {
            "field": "username",
            "issue": "不能为空"
        }
    }
}

速率限制

为了防止滥用,API 实施了速率限制:

  • 未认证请求:每小时 100 次
  • 认证请求:每小时 1000 次

响应头中包含速率限制信息:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200