---
title: 个人项目
language_tabs:
  - shell: Shell
  - http: HTTP
  - javascript: JavaScript
  - ruby: Ruby
  - python: Python
  - php: PHP
  - java: Java
  - go: Go
toc_footers: []
includes: []
search: true
code_clipboard: true
highlight_theme: darkula
headingLevel: 2
generator: "@tarslib/widdershins v4.0.23"

---

# 个人项目

Base URLs:

# Authentication

# coeus-labs/intent-system/客户端

## POST 注册【客户】

POST /api/v1/customer/register

> Body 请求参数

```json
{
  "user_name": "civet148@126.com",
  "password": "e10adc3949ba59abbe56e057f20f883e",
  "email": "civet148@126.com",
  "reg_code": "888888"
}
```

### 请求参数

|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|body|body|object| 否 |none|

> 返回示例

> 成功

```json
{
  "header": {
    "code": 0,
    "message": "OK",
    "total": 1,
    "count": 1
  },
  "data": {}
}
```

```json
{
  "header": {
    "code": 1018,
    "message": "Email already exist",
    "total": 0,
    "count": 0
  },
  "data": {}
}
```

### 返回结果

|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|

### 返回数据结构

状态码 **200**

|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» header|object|true|none||none|
|»» code|integer|true|none||0表示正常 其他值表示具体错误码|
|»» message|string|true|none||错误消息|
|»» total|integer|true|none||数据总数（分页用途）|
|»» count|integer|true|none||当前数据数（分页用途）|
|» data|object|true|none||none|

## POST 验证码【客户】

POST /api/v1/common/auth-code

> Body 请求参数

```json
{
  "user_name": "civet148@126.com",
  "email": "civet148@126.com"
}
```

### 请求参数

|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|body|body|object| 否 |none|

> 返回示例

> 成功

```json
{
  "header": {
    "code": 0,
    "message": "OK",
    "total": 1,
    "count": 1
  },
  "data": {}
}
```

### 返回结果

|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|

### 返回数据结构

状态码 **200**

|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» header|object|true|none||none|
|»» code|integer|true|none||none|
|»» message|string|true|none||none|
|»» total|integer|true|none||none|
|»» count|integer|true|none||none|
|» data|object|true|none||none|

## POST 登录【客户】

POST /api/v1/customer/login

> Body 请求参数

```json
{
  "user_name": "civet148@126.com",
  "password": "e10adc3949ba59abbe56e057f20f883e"
}
```

### 请求参数

|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|body|body|object| 否 |none|

> 返回示例

> 成功

```json
{
  "header": {
    "code": 0,
    "message": "",
    "total": 1,
    "count": 1
  },
  "data": {
    "id": 1,
    "version": "v0.2.0",
    "is_subscribed": false,
    "user_name": "civet148@126.com",
    "first_name": "li",
    "last_name": "bin",
    "title": "CFO",
    "company": "Coeus software",
    "auth_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGFpbV9leHBpcmUiOjE3MTE1MjQ5MzksImNsYWltX2lhdCI6MTcxMTM1MjEzOSwidXNlcl9zZXNzaW9uIjoie1widXNlcl9pZFwiOjEsXCJ1c2VyX25hbWVcIjpcImNpdmV0MTQ4QDEyNi5jb21cIixcImVtYWlsXCI6XCJjaXZldDE0OEAxMjYuY29tXCIsXCJhbGlhc1wiOlwiY2l2ZXQxNDhcIixcInBob25lX251bWJlclwiOlwiXCIsXCJpc19hZG1pblwiOmZhbHNlLFwibG9naW5faXBcIjpcIjE3Mi4yNy4xOTIuMVwiLFwiYXV0aF90b2tlblwiOlwiXCIsXCJsb2dpbl9tb2RlXCI6MCxcImlzX2N1c3RvbWVyXCI6dHJ1ZX0ifQ.nzoW7x7lnfSLDzdNYulubnBNrKuTBM3dEuOIi5zxYX4",
    "login_ip": "172.27.192.1",
    "login_time": 1711352138,
    "privileges": "",
    "sub_tags": [
      "#AI",
      "#Blockchain",
      "#ChatGPT"
    ]
  }
}
```

```json
{
  "header": {
    "code": 0,
    "message": "",
    "total": 1,
    "count": 1
  },
  "data": {
    "id": 1,
    "version": "v0.2.0",
    "is_subscribed": true,
    "user_name": "civet148@126.com",
    "auth_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGFpbV9leHBpcmUiOjE3MTEwMDY3NTgsImNsYWltX2lhdCI6MTcxMDkyMDM1OCwidXNlcl9zZXNzaW9uIjoie1widXNlcl9pZFwiOjEsXCJ1c2VyX25hbWVcIjpcImNpdmV0MTQ4QDEyNi5jb21cIixcImVtYWlsXCI6XCJjaXZldDE0OEAxMjYuY29tXCIsXCJhbGlhc1wiOlwiXCIsXCJwaG9uZV9udW1iZXJcIjpcIlwiLFwiaXNfYWRtaW5cIjpmYWxzZSxcImxvZ2luX2lwXCI6XCIxNzIuMjcuMTkyLjFcIixcImF1dGhfdG9rZW5cIjpcIlwiLFwibG9naW5fbW9kZVwiOjAsXCJpc19jdXN0b21lclwiOnRydWV9In0.7F0Ui19NhFZrBXGb3V1QRMz3OWEl2dby-aQ7etxcoX4",
    "login_ip": "172.27.192.1",
    "login_time": 1710920358,
    "role": ""
  }
}
```

### 返回结果

|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|

### 返回数据结构

状态码 **200**

|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» header|object|true|none||none|
|»» code|integer|true|none||none|
|»» message|string|true|none||none|
|»» total|integer|true|none||none|
|»» count|integer|true|none||none|
|» data|object|true|none||none|
|»» id|integer|true|none||none|
|»» version|string|true|none||程序版本号|
|»» is_subscribed|boolean|true|none||是否已订阅|
|»» user_name|string|true|none||账户名|
|»» auth_token|string|true|none||JWT令牌|
|»» login_ip|string|true|none||最近登录IP|
|»» login_time|integer|true|none||最近登录时间|
|»» role|string|true|none||角色名|

## POST 退出【客户】

POST /api/v1/customer/logout

> Body 请求参数

```json
{}
```

### 请求参数

|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|Authorization|header|string| 否 |none|
|body|body|object| 否 |none|

> 返回示例

> 成功

```json
{
  "header": {
    "code": 0,
    "message": "",
    "total": 1,
    "count": 1
  },
  "data": {}
}
```

### 返回结果

|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|

### 返回数据结构

状态码 **200**

|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» header|object|true|none||none|
|»» code|integer|true|none||none|
|»» message|string|true|none||none|
|»» total|integer|true|none||none|
|»» count|integer|true|none||none|
|» data|object|true|none||none|
|»» version|string|true|none||程序版本号|
|»» user_name|string|true|none||账户名|
|»» auth_token|string|true|none||JWT令牌|
|»» login_ip|string|true|none||最近登录IP|
|»» login_time|integer|true|none||最近登录时间|
|»» role|string|true|none||角色名|
|»» privilege|[string]|true|none||权限列表|

## POST 编辑资料【客户】

POST /api/v1/customer/edit

> Body 请求参数

```json
{
  "first_name": "li",
  "last_name": "bin",
  "title": "CFO",
  "company": "Coeus software"
}
```

### 请求参数

|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|Authorization|header|string| 否 |none|
|body|body|object| 否 |none|

> 返回示例

> 成功

```json
{
  "header": {
    "code": 0,
    "message": "",
    "total": 1,
    "count": 1
  },
  "data": {}
}
```

### 返回结果

|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|

### 返回数据结构

状态码 **200**

|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» header|object|true|none||none|
|»» code|integer|true|none||none|
|»» message|string|true|none||none|
|»» total|integer|true|none||none|
|»» count|integer|true|none||none|
|» data|object|true|none||none|
|»» version|string|true|none||程序版本号|
|»» user_name|string|true|none||账户名|
|»» auth_token|string|true|none||JWT令牌|
|»» login_ip|string|true|none||最近登录IP|
|»» login_time|integer|true|none||最近登录时间|
|»» role|string|true|none||角色名|
|»» privilege|[string]|true|none||权限列表|

## POST 邮件订阅【客户】

POST /api/v1/customer/subscribe

> Body 请求参数

```json
{
  "email": "93864947@qq.com",
  "tags": [
    "#AI",
    "#Blockchain",
    "#ChatGPT",
    "#Bitcoin"
  ]
}
```

### 请求参数

|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|Authorization|header|string| 否 |none|
|body|body|object| 否 |none|

> 返回示例

> 成功

```json
{
  "header": {
    "code": 0,
    "message": "",
    "total": 1,
    "count": 1
  },
  "data": {}
}
```

### 返回结果

|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|

### 返回数据结构

状态码 **200**

|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» header|object|true|none||none|
|»» code|integer|true|none||none|
|»» message|string|true|none||none|
|»» total|integer|true|none||none|
|»» count|integer|true|none||none|
|» data|object|true|none||none|
|»» version|string|true|none||程序版本号|
|»» user_name|string|true|none||账户名|
|»» auth_token|string|true|none||JWT令牌|
|»» login_ip|string|true|none||最近登录IP|
|»» login_time|integer|true|none||最近登录时间|
|»» role|string|true|none||角色名|
|»» privilege|[string]|true|none||权限列表|

## POST 我的订阅【客户】

POST /api/v1/customer/sub-info

> Body 请求参数

```json
{
  "email": "93864947@qq.com"
}
```

### 请求参数

|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|Authorization|header|string| 否 |none|
|body|body|object| 否 |none|

> 返回示例

> 成功

```json
{
  "header": {
    "code": 0,
    "message": "",
    "total": 1,
    "count": 1
  },
  "data": {
    "is_subscribed": true,
    "tags": [
      "#AI",
      "#Blockchain",
      "#ChatGPT"
    ]
  }
}
```

### 返回结果

|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|

### 返回数据结构

状态码 **200**

|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» header|object|true|none||none|
|»» code|integer|true|none||none|
|»» message|string|true|none||none|
|»» total|integer|true|none||none|
|»» count|integer|true|none||none|
|» data|object|true|none||none|
|»» version|string|true|none||程序版本号|
|»» user_name|string|true|none||账户名|
|»» auth_token|string|true|none||JWT令牌|
|»» login_ip|string|true|none||最近登录IP|
|»» login_time|integer|true|none||最近登录时间|
|»» role|string|true|none||角色名|
|»» privilege|[string]|true|none||权限列表|

## POST 取消订阅【客户】

POST /api/v1/customer/unsubscribe

> Body 请求参数

```json
{
  "email": "93864947@qq.com",
  "reason": "太多无效内容，文章质量堪忧"
}
```

### 请求参数

|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|Authorization|header|string| 否 |none|
|body|body|object| 否 |none|

> 返回示例

> 成功

```json
{
  "header": {
    "code": 0,
    "message": "",
    "total": 1,
    "count": 1
  },
  "data": {}
}
```

### 返回结果

|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|

### 返回数据结构

状态码 **200**

|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» header|object|true|none||none|
|»» code|integer|true|none||none|
|»» message|string|true|none||none|
|»» total|integer|true|none||none|
|»» count|integer|true|none||none|
|» data|object|true|none||none|
|»» version|string|true|none||程序版本号|
|»» user_name|string|true|none||账户名|
|»» auth_token|string|true|none||JWT令牌|
|»» login_ip|string|true|none||最近登录IP|
|»» login_time|integer|true|none||最近登录时间|
|»» role|string|true|none||角色名|
|»» privilege|[string]|true|none||权限列表|

## POST 首页新闻【客户】

POST /api/v1/news/list

> Body 请求参数

```json
{
  "id": 0,
  "tag": "#Blockchain",
  "language": "zh-CN",
  "page_no": 0,
  "page_size": 10
}
```

### 请求参数

|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|body|body|object| 否 |none|

> 返回示例

> 成功

```json
{
  "header": {
    "code": 0,
    "message": "",
    "total": 1,
    "count": 1
  },
  "data": {
    "list": [
      {
        "id": 1,
        "org_id": 104,
        "spider_id": 104,
        "tag": "#Blockchain",
        "category": "Coindesk",
        "main_title": "Bitcoin Could Drop to $58K as Cool-Off Period Is Imminent, Swissblock Says",
        "sub_title": "Bitcoin nearly doubled in price since late January, but a \"counter move seems to be near,\" Swissblock analysts said.",
        "summary": "",
        "keywords": [
          "Markets",
          "Bitcoin",
          "Swissblock technologies",
          "Matrixport"
        ],
        "seo_keywords": [
          "bitcoin",
          "bitcoin price",
          "btc price"
        ],
        "tags": [
          "#Blockchain",
          "#Solidity",
          "#Bitcoin"
        ],
        "url": "https://www.coindesk.com/markets/2024/03/13/bitcoin-could-drop-to-58k-as-cool-off-period-is-imminent-swissblock-says/",
        "image_url": "",
        "content": "Bitcoin's rally shows waning momentum, underscored by a negative divergence between its price and the RSI momentum indicator, Swissblock analysts noted.BTC could drop as much as 20% from current prices in the near term, but the uptrend will resume Swissblock forecasted.Bitcoin (BTC) has been climbing ever-higher over the past month, notching new all-time highs on the way with every dip bought up quickly, but the largest crypto may be poised for a cool-off phase, analysts warned.Digital asset analytics firm Swissblock said in a note on Wednesday that bitcoin nearly doubled in price from $38,000 in late January without any meaningful pullbacks, and a cooling period could be imminent.\"Nothing rallies in a straight line. Not even BTC,\" Swissblock analysts said in a Telegram update. \"A counter move seems to be near.\"Swissblock analysts based their forecast on the negative bearish divergence between bitcoin's price inching higher but dwindling relative strength index (RSI) on the 4-hour chart, foreshadowing lower prices. The RSI is a widely used momentum indicator that measures the speed and size of an asset's price changes.The pullback could materialize as soon as in the next few days, according to a chart by Swissblock analyst Henrik Zeberg. But, in the bigger picture, lower prices will be a temporary setback before the uptrend eventually resumes to new highs.\"We see BTC dropping to $58,000-$59,000 in the next move,\" they said, representing a 20% decline from current prices. \"But the top is not in.\"Bitcoin could drop to $58,000 in the near-future (Swissblock)Crypto investment services firm Matrixport also noted Tuesday that bitcoin's rally is running out of fuel and forecasted a period of consolidation. \"This bull market still has legs, but the divergence between a declining RSI and still high bitcoin prices could signal that BTC needs to consolidate before rallying again,\" Matrixport analysts said.Read more: Ether Could See Price Correction After Dencun Upgrade, QCP Capital SaysSkyrocketing meme coin prices could also signal an impending pullback, as rotating profits from large-cap cryptos to riskier tokens was often the last stage in a crypto uptrend. For example, pepe coin's (PEPE) breakneck rally last May presaged a 15% decline in bitcoin's price in the following month.BTC recently changed hands slightly above $73,000, up 2.6% over the past 24 hours. The broad-market Coindesk 20 Index (CD20) advanced 4% during the same period.Edited by Aoyon Ashraf.",
        "is_hotspot": false,
        "is_overwritten": false,
        "is_deleted": false,
        "is_replicate": false,
        "is_pushed": false,
        "created_time": "2024-03-20 14:38:45",
        "updated_time": "2024-03-20 14:39:28",
        "extra_data": {
          "logs": null
        }
      }
    ]
  }
}
```

### 返回结果

|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|

### 返回数据结构

状态码 **200**

|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» header|object|true|none||none|
|»» code|integer|true|none||none|
|»» message|string|true|none||none|
|»» total|integer|true|none||none|
|»» count|integer|true|none||none|
|» data|object|true|none||none|
|»» version|string|true|none||程序版本号|
|»» user_name|string|true|none||账户名|
|»» auth_token|string|true|none||JWT令牌|
|»» login_ip|string|true|none||最近登录IP|
|»» login_time|integer|true|none||最近登录时间|
|»» role|string|true|none||角色名|
|»» privilege|[string]|true|none||权限列表|

## POST Q&A列表【客户】

POST /api/v1/qa/list

> Body 请求参数

```json
{
  "id": 0,
  "language": "zh-CN",
  "page_no": 0,
  "page_size": 10
}
```

### 请求参数

|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|body|body|object| 否 |none|

> 返回示例

> 成功

```json
{
  "header": {
    "code": 0,
    "message": "",
    "total": 0,
    "count": 0
  },
  "data": {
    "list": []
  }
}
```

### 返回结果

|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|

### 返回数据结构

状态码 **200**

|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» header|object|true|none||none|
|»» code|integer|true|none||none|
|»» message|string|true|none||none|
|»» total|integer|true|none||none|
|»» count|integer|true|none||none|
|» data|object|true|none||none|
|»» version|string|true|none||程序版本号|
|»» user_name|string|true|none||账户名|
|»» auth_token|string|true|none||JWT令牌|
|»» login_ip|string|true|none||最近登录IP|
|»» login_time|integer|true|none||最近登录时间|
|»» role|string|true|none||角色名|
|»» privilege|[string]|true|none||权限列表|

# 数据模型

