话题

优质
小牛编辑
113浏览
2023-12-01

获取全部话题

GET /question-topics

请求参数

名称类型描述
limit数字这次请求获取的条数,默认为 20 条,为了避免过大或者错误查询,设置了一个修正值,最大 50 最小 1
offset数字数据偏移量,用于翻页
follow任意是否检查当前用户是否关注了某话题,默认为不检查,如果传递 follow 切拥有任意值(空除外),都会检查当前用户与话题的关注关系。
name字符串用语搜索话题,传递话题名称关键词。

响应

Status: 200 OK
[
  {
    "id": 1,
    "name": "PHP",
    "description": "我是PHP",
    "questions_count": 0,
    "follows_count": 0,
    "has_follow": false,
    "avatar": null
  }
]
字段描述
id话题ID
name话题名称
description话题描述
questions_count话题下的问题数量统计
follows_count话题下的关注用户统计
avatar话题头像,如果存在则为「字符串」,否则固定值 null
has_follow当「请求参数」传递了 follow 才会出现 has_follow 字段,布尔值,true 表示当前用户关注了这个话题,false 反之。

获取认证用户关注的话题或者专家话题

GET /user/question-topics

请求参数

名称类型描述
limit数字这次请求获取的条数,默认为 20 条,为了避免过大或者错误查询,设置了一个修正值,最大 50 最小 1
after数字获取 id 之后的数据,要获取某条话题之后的数据,传递该话题 ID。
type枚举:follow / expert默认值为 follow 代表用户关注的话题列表,如果值为 expert 则获取该用户的专家话题(哪些话题下是专家)。

响应

Status: 200 OK
[
  {
    "id": 1,
    "name": "PHP",
    "description": "我是PHP",
    "questions_count": 0,
    "follows_count": 0,
    "avatar": null
  }
]
字段描述
id话题ID
name话题名称
description话题描述
questions_count话题下的问题数量统计
follows_count话题下的关注用户统计
avatar话题头像,如果存在则为「字符串」,否则固定值 null

获取一个话题

GET /question-topics/:topic

响应

Status: 200 OK
{
  "id": 1,
  "name": "PHP",
  "description": "我是PHP",
  "questions_count": 5,
  "experts_count": 1,
  "follows_count": 0,
  "has_follow": false,
  "avatar": null,
  "experts": [
    {
      "id": 2,
      "name": "test1",
      "bio": "0",
      "sex": 0,
      "location": "0",
      "created_at": "2017-06-12 07:38:55",
      "updated_at": "2017-06-12 07:38:55",
      "avatar": null,
      "bg": null,
      "verified": null,
      "extra": null
    }
  ]
}
字段描述
id话题的唯一标识。
name话题名称。
description话题详细描述。
questions_count话题下的问题数量。
experts_count话题下的专家数量。
follows_count话题的关注者数量。
has_follow当前用户是否关注了话题。
avatar话题头像,如果没有头像则为 null,存在则为一个 URI。
experts话题下的专家预览。按照设计图,返回五个用户。

关注一个话题

PUT /user/question-topics/:topic

响应

Status: 201 Created
{
  "message": [
    "操作成功"
  ]
}

取消关注一个话题

DELETE /user/question-topics/:topic

响应

Status: 204 No Content

获取话题下专家列表

GET /question-topics/:topic/experts

参数

名称类型描述
afterInteger上一次请求获取的最后一条 ID,或者指定某条 ID 之后的数据。

响应

Status: 200 OK
[
  {
    "id": 1,
    "name": "Seven",
    "bio": "Seven 的个人传记",
    "sex": 2,
    "location": "成都 中国",
    "created_at": "2017-06-02 08:43:54",
    "updated_at": "2017-07-25 03:59:39",
    "following": false,
    "follower": false,
    "avatar": "http://plus.io/api/v2/users/1/avatar",
    "bg": "https://www.xnip.cn/wp-content/uploads/2021/docimg15/33-is0zftiblx4.png",
    "verified": null,
    "extra": {
      "user_id": 1,
      "likes_count": 0,
      "comments_count": 8,
      "followers_count": 0,
      "followings_count": 1,
      "updated_at": "2017-08-01 06:06:37",
      "feeds_count": 0,
      "questions_count": 5,
      "answers_count": 3
    },
    "tags": [
      {
        "id": 1,
        "name": "标签1",
        "tag_category_id": 1
      }
    ]
  }
]

列表资料参见「用户资料」相关文档,这里多的数据为 tags 用户标签,用户标签字段说明参见「用户标签」相关文档。

批量获取专家列表

GET /question-experts

参数

名称类型描述
offsetInteger偏移量
topicsstring话题id,多个以逗号隔开
keywordstring搜索关键字

响应

Status: 200 OK
[
  {
    "id": 1,
    "name": "Seven",
    "bio": "Seven 的个人传记",
    "sex": 2,
    "location": "成都 中国",
    "created_at": "2017-06-02 08:43:54",
    "updated_at": "2017-07-25 03:59:39",
    "following": false,
    "follower": false,
    "avatar": "http://plus.io/api/v2/users/1/avatar",
    "bg": "https://www.xnip.cn/wp-content/uploads/2021/docimg15/33-is0zftiblx4.png",
    "verified": null,
    "extra": {
      "user_id": 1,
      "likes_count": 0,
      "comments_count": 8,
      "followers_count": 0,
      "followings_count": 1,
      "updated_at": "2017-08-01 06:06:37",
      "feeds_count": 0,
      "questions_count": 5,
      "answers_count": 3
    },
    "tags": [
      {
        "id": 1,
        "name": "标签1",
        "tag_category_id": 1
      }
    ]
  }
]

列表资料同获取一个话题下专家列表,id为乱序。

申请创建一个话题

POST /api/v2/user/question-topics/application

参数

名称类型描述
namestring话题名称
descriptionstring话题描述

响应

Status: 201 Created
{
  "message": [
    "操作成功"
  ]
}