REST API
CP语言 API 文档
通过我们的 REST API,您可以在自己的应用中集成 CP 语言的强大功能。
快速开始
所有 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