mirror of
https://gitee.com/insArvin/nypc_python_advanced.git
synced 2026-04-17 22:52:28 +08:00
151
Spider/ecoDataServer/readme.md
Normal file
151
Spider/ecoDataServer/readme.md
Normal file
@@ -0,0 +1,151 @@
|
||||
# EcoData 数据接口文档
|
||||
|
||||
## 项目概述
|
||||
|
||||
EcoData 是一个基于数据查询系统,提供数据查询。
|
||||
|
||||
数据为测试生成数据,仅供测试。
|
||||
|
||||
## 基本URL
|
||||
|
||||
`http://ecodata.lzgxy.cn`
|
||||
|
||||
## 接口列表
|
||||
|
||||
### 1. 分页数据查询接口
|
||||
|
||||
- **接口地址**:`/query/PaginQuery/`
|
||||
- **请求方式**:GET
|
||||
- **认证方式**:密钥验证
|
||||
|
||||
#### 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| ---------- | ------- | ---- | ------------------- |
|
||||
| key | String | `是` | 访问密钥 |
|
||||
| user_id | String | 否 | 用户ID |
|
||||
| product_id | String | 否 | 产品ID |
|
||||
| start_time | String | 否 | 开始时间(ISO格式) |
|
||||
| end_time | String | 否 | 结束时间(ISO格式) |
|
||||
| city | String | 否 | 用户所在城市 |
|
||||
| gender | String | 否 | 用户性别 |
|
||||
| age | Integer | 否 | 用户年龄 |
|
||||
| platform | String | 否 | 购物平台 |
|
||||
| offset | Integer | 否 | 起始索引,默认为0 |
|
||||
| limit | Integer | 否 | 返回数量,默认为10 |
|
||||
|
||||
#### 请求头
|
||||
|
||||
- 需要在URL参数中包含 `key` 参数,用于身份验证
|
||||
|
||||
#### 响应示例
|
||||
|
||||
```json
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"id": 1,
|
||||
"user_id": "123456",
|
||||
"order_id": "123456000001",
|
||||
"user_name": "张三",
|
||||
"product_id": "P001",
|
||||
"product_name": "商品名称",
|
||||
"product_category": "商品分类",
|
||||
"unit_price": 99.99,
|
||||
"purchase_time": "2023-01-01T10:00:00",
|
||||
"quantity": 2,
|
||||
"total_amount": 199.98,
|
||||
"user_city": "北京",
|
||||
"user_gender": "男",
|
||||
"user_age": 25,
|
||||
"shopping_platform": "淘宝"
|
||||
}
|
||||
],
|
||||
"pagination": {
|
||||
"offset": 0,
|
||||
"limit": 10,
|
||||
"total": 100,
|
||||
"has_more": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 浏览器示例
|
||||
|
||||

|
||||
|
||||
#### 响应参数说明
|
||||
|
||||
- `data`:数据列表
|
||||
- id:记录ID
|
||||
- user_id:用户ID
|
||||
- order_id:订单ID
|
||||
- user_name:用户名
|
||||
- product_id:产品ID
|
||||
- product_name:产品名称
|
||||
- product_category:产品分类
|
||||
- unit_price:单价
|
||||
- purchase_time:购买时间
|
||||
- quantity:数量
|
||||
- total_amount:总金额
|
||||
- user_city:用户城市
|
||||
- user_gender:用户性别
|
||||
- user_age:用户年龄
|
||||
- shopping_platform:购物平台
|
||||
- `pagination`:分页信息
|
||||
- offset:起始索引
|
||||
- limit:返回数量
|
||||
- total:总记录数
|
||||
- has_more:是否有更多数据
|
||||
|
||||
### 2. 密钥生成接口
|
||||
|
||||
- **接口地址**:`/get_signature/`
|
||||
- **请求方式**:GET
|
||||
|
||||
#### 请求参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| ------ | ------ | ---- | -------- |
|
||||
| id | String | 是 | 学生学号 |
|
||||
| name | String | 是 | 学生姓名 |
|
||||
|
||||
#### 响应示例
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "张三",
|
||||
"student_id": "20210001",
|
||||
"ip": "192.168.1.1",
|
||||
"request_key": "base64_encoded_key"
|
||||
}
|
||||
```
|
||||
|
||||
#### 浏览器示例
|
||||
|
||||

|
||||
|
||||
#### 响应参数说明
|
||||
|
||||
- name:学生姓名
|
||||
- student_id:学生学号
|
||||
- ip:当前IP地址
|
||||
- request_key:生成的请求密钥
|
||||
|
||||
## 验证机制
|
||||
|
||||
### 密钥验证流程
|
||||
|
||||
1. **密钥生成**:
|
||||
- 通过 `/get_signature/` 接口获取密钥
|
||||
- 密钥有效期为5分钟
|
||||
|
||||
2. **密钥验证**:
|
||||
- 在请求 `/query/PaginQuery/` 时需要在URL参数中添加 `key` 参数
|
||||
|
||||
## 异常处理
|
||||
|
||||
- `400`: 缺少密钥参数
|
||||
- `401`: 密钥解析失败或已过期
|
||||
- `403`: IP地址不匹配
|
||||
- `404`: 学生信息不存在或未找到
|
||||
Reference in New Issue
Block a user