mirror of
https://gitee.com/insArvin/nypc_python_advanced.git
synced 2026-04-18 01:12:29 +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