接口定义

用户部分

身份认证

::: theorem 登录接口

  • 路径: /auth/login
  • 方法: POST
  • 身份认证:否
  • 无返回:否
  • 此接口存在未来变动的可能,建议定期观察可用性。

:::

以下为该接口可用的请求参数:

参数 类型 规则 示例 备注
email string 必须是 Email user@hitokoto.cn 用户邮箱
password string 非空 gugugu 密码

可能存在的错误: | 错误代码 | 原因 | |———|————-| | -1 | 账户或密码错误 | | 400 | 请求参数错误 |

以下为响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "id": 4943,
  7. "name": "啪啪啪",
  8. "email": "a632079@hitokoto.cn",
  9. "is_suspended": 0, // 账户是否被暂停,如果被暂停的话,鉴权接口都会返回 403
  10. "is_admin": 0, // 账户是否是管理员
  11. "is_reviewer": 0, // 账户是否时审核员
  12. "email_verified_at": "2020-02-17 00:00:00",
  13. "created_from": "api",
  14. "created_at": "2020-02-16 18:18:16",
  15. "updated_at": "2020-02-16 18:29:43",
  16. "token": "xxxxxxxxxxxxxxxxxxxxxx" // 长度应该为 40
  17. }
  18. ],
  19. "ts": 1582435924917
  20. }

::: theorem 注册接口

  • 路径: /auth/register
  • 方法: POST
  • 身份认证:否
  • 无返回:否
  • 此接口存在未来变动的可能,建议定期观察可用性。 :::

以下为该接口可用的请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |—————|————|————|—————————|——-| | name | string | 非空 | 皮皮喵 | 用户名 | | password | string | 非空 | gugugu | 密码 | | email | string | 非空; 邮箱 | pipi@hitokoto.cn | 邮箱 |

可能存在的错误: | 错误代码 | 原因 | |———|———————| | -1 | 邮箱已被占用 | | -2 | 创建失败,可能是参数问题 | | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "id": 4943,
  7. "name": "啪啪啪",
  8. "email": "a632079@hitokoto.cn",
  9. "token": "EWq9Qq8H3LCW6Jiv3vnVCIqRy5Un08sDgaTztSX4",
  10. "email_verified_at": null,
  11. "created_at": "2020-02-16T18:18:16.000000Z",
  12. "updated_at": "2020-02-16T18:18:16.000000Z"
  13. }
  14. ],
  15. "ts": 1581877097013
  16. }

::: theorem 重置密码

  • 路径: /auth/password/reset
  • 方法: POST
  • 身份认证:否
  • 无返回:否
  • 此接口存在未来变动的可能,建议定期观察可用性。 :::

以下为该接口可用的请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |—————|————|————|—————————|——-| | email | string | 非空; 邮箱 | pipi@hitokoto.cn | 邮箱 |

可能存在的错误: | 错误代码 | 原因 | |———|———————| | -1 | 发信错误,可能是服务器原因。 | | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [],
  5. "ts": 1581877220645
  6. }

用户信息


::: theorem 取得用户信息

  • 路径: /user
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

此接口无请求参数,无返回错误

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "id": 1044,
  7. "name": "a632079",
  8. "email": "a632079@qq.com",
  9. "is_suspended": 0,
  10. "is_admin": 1,
  11. "is_reviewer": 0,
  12. "email_verified_at": "2020-02-13 19:08:45",
  13. "created_from": "web",
  14. "created_at": "2018-01-13T18:20:04.000000Z",
  15. "updated_at": "2020-02-22T17:06:52.000000Z"
  16. }
  17. ],
  18. "ts": 1582433802658
  19. }

::: theorem 取得令牌

  • 路径: /user/token
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

此接口无请求参数,无返回错误

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "user": {
  7. "id": 1044,
  8. "name": "a632079",
  9. "email": "a632079@qq.com",
  10. "token": "xxxxxxxxxxxxxxxxx" // 长度应为 40
  11. }
  12. }
  13. ],
  14. "ts": 1581877469585
  15. }

::: theorem 重置令牌

  • 路径: /user/token/refresh
  • 方法: PUT
  • 身份认证:是
  • 无返回:否 :::

此接口无请求参数,无返回错误

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "user": {
  7. "id": 4943,
  8. "name": "啪啪啪",
  9. "email": "a632079@hitokoto.cn",
  10. "token": "XBufVkcA3Ti0sfB8rJlVe0iQ7cpjxDvtje4zJM62"
  11. }
  12. }
  13. ],
  14. "ts": 1581877596010
  15. }

::: theorem 认证邮箱

  • 路径: /user/email/verify
  • 方法: PUT
  • 身份认证:是
  • 无返回:是 :::

此接口无请求参数

可能存在的错误: | 错误代码 | 原因 | |———|——————-| | -1 | 邮箱已认证 | | -2 | 发信失败,服务器错误。 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [],
  5. "ts": 1581877596010
  6. }

::: theorem 修改密码

  • 路径: /user/password
  • 方法: PUT
  • 身份认证:是
  • 无返回:是 :::

以下为该接口可用的请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |———————|————|——————|——————-|——-| | password | string | 非空 | gugugugu | 密码 | | new_password | string | 非空;长度至少为 8 | gugugugu!!! | 新密码 |

可能出现的错误: | 错误代码 | 原因 | |———|——————-| | -1 | 密码错误 | | -2 | 无法修改,服务器问题。 | | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [],
  5. "ts": 1581877784046
  6. }

::: theorem 修改邮箱

  • 路径: /user/email
  • 方法: PUT
  • 身份认证:是
  • 无返回:是
  • 此接口存在未来变动的可能,建议定期观察可用性。 :::

以下为该接口可用的请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |———————|————|——————|——————-|——-| | email | string | 非空;邮箱 | i@freejishu.com | 新邮箱 | | password | string | 非空 | guguguguguggugu | 登录密码 |

可能出现的错误: | 错误代码 | 原因 | |———|——————-| | -1 | 邮箱被占用 | | -2 | 密码不正确 | | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [],
  5. "ts": 1581877821513
  6. }

::: theorem 获取通知配置

  • 路径: /user/notification/settings
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

此接口无请求参数,无返回错误

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "id": 3,
  7. "user_id": 1044,
  8. "email_notification_global": 1,
  9. "email_notification_hitokoto_appended": 1,
  10. "email_notification_hitokoto_reviewed": 1,
  11. "email_notification_poll_created": 1,
  12. "email_notification_poll_result": 1,
  13. "email_notification_poll_daily_report": 1,
  14. "updated_at": "2020-02-24T10:52:05.000000Z",
  15. "created_at": "2020-02-24T10:39:52.000000Z"
  16. }
  17. ],
  18. "ts": 1582541559807
  19. }

::: theorem 更新通知配置

  • 路径: /user/notification/settings
  • 方法: PUT
  • 身份认证:是
  • 无返回:否 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |————————————-|————-|————|———|————————————| | email_global | boolean | 布尔; 可选 | TRUE | 全局邮箱通知设定(当为真时,覆盖子通知配置) | | email_hitokoto_appended | boolean | 布尔; 可选 | TRUE | 成功添加一言时通知 | | email_hitokoto_reviewed | boolean | 布尔; 可选 | TRUE | 一言审核结果通知 | | email_poll_created | boolean | 布尔; 可选 | TRUE | 投票创建时通知 | | email_poll_result | boolean | 布尔; 可选 | TRUE | 投票结果公布时通知 | | email_poll_report_daily | boolean | 布尔; 可选 | TRUE | 每日投票数据报告 |

可能的错误: | 错误代码 | 原因 | |———|——————-| | -1 | 无法修改,服务器错误。 | | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "id": 3,
  7. "user_id": 1044,
  8. "email_notification_global": 1,
  9. "email_notification_hitokoto_appended": 1,
  10. "email_notification_hitokoto_reviewed": 1,
  11. "email_notification_poll_created": 1,
  12. "email_notification_poll_result": 1,
  13. "email_notification_poll_daily_report": 1,
  14. "updated_at": "2020-02-24T10:52:05.000000Z",
  15. "created_at": "2020-02-24T10:39:52.000000Z"
  16. }
  17. ],
  18. "ts": 1582541559807
  19. }

::: theorem 获取赞过的句子

  • 路径: /user/hitokoto/like
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |————|————-|—————-|——|————| | offset | integer | >=0 | 0 | 偏移 | | limit | integer | [20, 200] | 20 | 句子规模限制 |

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "statistics": {
  7. "total": 20
  8. },
  9. "collection": [
  10. {
  11. "uuid": "c78f853d-63ca-4687-a8fd-a498bd89a8da",
  12. "hitokoto": "你知道,我以前是红色的。和我喷出的火焰一样的赤红。那些日子真是美好啊。",
  13. "type": "g",
  14. "from": "scp-3844",
  15. "from_who": null,
  16. "creator": "「❦」",
  17. "creator_uid": 3191,
  18. "reviewer": 0,
  19. "commit_from": "web",
  20. "operated_at": "2020-02-28T17:52:55.000000Z", // 操作时间
  21. "created_at": "1564316816"
  22. },
  23. {
  24. "uuid": "b67961ac-d89a-4e71-866f-95ca07811605",
  25. "hitokoto": "萤火之光看起来比平常要更耀眼是错觉吗?今宵会成为永夜的吧。",
  26. "type": "c",
  27. "from": "东方永夜抄",
  28. "from_who": null,
  29. "creator": "Hatate",
  30. "creator_uid": 1939,
  31. "reviewer": 0,
  32. "commit_from": "web",
  33. "operated_at": "2020-02-25T16:50:18.000000Z",
  34. "created_at": "1534775032"
  35. }
  36. ]
  37. }
  38. ],
  39. "ts": 1582919909715
  40. }

::: theorem 获取句子数据概览

  • 路径: /user/hitokoto/summary
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

此接口无请求参数,无返回错误

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "statistics": { // 请求统计
  7. "total": 33, // 总共提交的句子数目
  8. "pending": 0, // 审核中的句子数目
  9. "refuse": 16, // 被拒绝的句子数目
  10. "accept": 17 // 上线的句子数目
  11. },
  12. "collections": [ // 概览集合,最多 15
  13. {
  14. "hitokoto": "或许前路永夜,即便如此我也要前进,因为星光即使微弱也会为我照亮前路。",
  15. "uuid": "cd3534d4-d667-4f96-b986-fc65ae28be5b",
  16. "type": "a",
  17. "from": "四月是你的谎言",
  18. "from_who": null,
  19. "creator": "a632079",
  20. "creator_uid": 1044,
  21. "reviewer": 1,
  22. "commit_from": "web",
  23. "created_at": "1579534044",
  24. "status": "refuse"
  25. },
  26. {
  27. "hitokoto": "身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。",
  28. "uuid": "efab198b-099d-4721-809c-2a42423af01d",
  29. "type": "g",
  30. "from": "神秀",
  31. "from_who": null,
  32. "creator": "a632079",
  33. "creator_uid": 1044,
  34. "reviewer": 0,
  35. "commit_from": "web",
  36. "created_at": "1523580040",
  37. "status": "accept"
  38. },
  39. {
  40. "hitokoto": "一个人至少拥有一个梦想,有一个理由去坚强。心若没有栖息的地方,到哪里都是在流浪。",
  41. "uuid": "75ee1579-ea53-4efb-994f-0e3ec6dfe69a",
  42. "type": "g",
  43. "from": "三毛",
  44. "from_who": null,
  45. "creator": "a632079",
  46. "creator_uid": 1044,
  47. "reviewer": 0,
  48. "commit_from": "web",
  49. "created_at": "1523579910",
  50. "status": "accept"
  51. },
  52. {
  53. "hitokoto": "如果有来生,要做一棵树,站成永恒,没有悲欢的姿势。一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠 从不寻找。",
  54. "uuid": "892f50b7-a5e1-4bce-aa52-13325872dc42",
  55. "type": "g",
  56. "from": "说给自己听",
  57. "from_who": null,
  58. "creator": "a632079",
  59. "creator_uid": 1044,
  60. "reviewer": 0,
  61. "commit_from": "web",
  62. "created_at": "1523579872",
  63. "status": "accept"
  64. }
  65. ]
  66. }
  67. ],
  68. "ts": 1581878176495
  69. }

::: theorem 获取提交记录

  • 路径: /user/hitokoto/history
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |————|————-|—————-|——|————| | offset | integer | >=0 | 0 | 偏移 | | limit | integer | [20, 200] | 20 | 句子规模限制 |

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "statistics": {
  7. "total": 36, // 提交的句子总数
  8. "pending": 3, // 进行中的句子数目
  9. "refuse": 16, // 被驳回的句子数目
  10. "accept": 17 // 已入库的句子数目
  11. },
  12. "collection": [ // 句子集合,受 Offset,和 Limit 约束。默认:offset: 0, limit: 20
  13. {
  14. "hitokoto": "你没有受伤吧,胆小鬼。",
  15. "uuid": "53f7ba0a-2b11-4da3-91a4-4a2c6dc7dbb2",
  16. "type": "a",
  17. "from": null,
  18. "from_who": null,
  19. "creator": "a632079",
  20. "creator_uid": 1044,
  21. "reviewer": null,
  22. "commit_from": "api",
  23. "created_at": "1581918906",
  24. "status": "pending"
  25. },
  26. {
  27. "hitokoto": "身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。",
  28. "uuid": "efab198b-099d-4721-809c-2a42423af01d",
  29. "type": "g",
  30. "from": "神秀",
  31. "from_who": null,
  32. "creator": "a632079",
  33. "creator_uid": 1044,
  34. "reviewer": 0,
  35. "commit_from": "web",
  36. "created_at": "1523580040",
  37. "status": "accept"
  38. },
  39. {
  40. "hitokoto": "一个人至少拥有一个梦想,有一个理由去坚强。心若没有栖息的地方,到哪里都是在流浪。",
  41. "uuid": "75ee1579-ea53-4efb-994f-0e3ec6dfe69a",
  42. "type": "g",
  43. "from": "三毛",
  44. "from_who": null,
  45. "creator": "a632079",
  46. "creator_uid": 1044,
  47. "reviewer": 0,
  48. "commit_from": "web",
  49. "created_at": "1523579910",
  50. "status": "accept"
  51. },
  52. ],
  53. }
  54. ],
  55. "ts": 1581925677740
  56. }

::: theorem 获取提交记录(审核中句子)

  • 路径: /user/hitokoto/history/pending
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |————|————-|—————-|——|————| | offset | integer | >=0 | 0 | 偏移 | | limit | integer | [20, 200] | 20 | 句子规模限制 |

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "total": 3, // 审核中的句子总数
  7. "collection": [
  8. {
  9. "hitokoto": "你没有受伤吧,胆小鬼。",
  10. "uuid": "53f7ba0a-2b11-4da3-91a4-4a2c6dc7dbb2",
  11. "type": "a",
  12. "from": "火影忍者",
  13. "from_who": "漩涡鸣人",
  14. "creator": "a632079",
  15. "creator_uid": 1044,
  16. "reviewer": null,
  17. "commit_from": "api",
  18. "created_at": "1581918906",
  19. "status": "pending"
  20. }
  21. ]
  22. }
  23. ],
  24. "ts": 1581926001764
  25. }

::: theorem 获取提交记录(已驳回句子)

  • 路径: /user/hitokoto/history/refuse
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |————|————-|—————-|——|————| | offset | integer | >=0 | 0 | 偏移 | | limit | integer | [20, 200] | 20 | 句子规模限制 |

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "total": 16, // 拒绝的句子总数
  7. "collection": [
  8. {
  9. "hitokoto": "蕾姆,蕾姆,看来是个变态呢?!",
  10. "uuid": "031bedab-54d9-430e-a767-b55135a8a3c9",
  11. "type": "a",
  12. "from": "从零开始的异世界生活",
  13. "from_who": null,
  14. "creator": "a632079",
  15. "creator_uid": 1044,
  16. "reviewer": 1,
  17. "commit_from": "web",
  18. "created_at": "1520850598",
  19. "status": "refuse"
  20. },
  21. ...
  22. ]
  23. }
  24. ],
  25. "ts": 1581926276333
  26. }

::: theorem 获取提交记录(已上线句子)

  • 路径: /user/hitokoto/history/accept
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |————|————-|—————-|——|————| | offset | integer | >=0 | 0 | 偏移 | | limit | integer | [20, 200] | 20 | 句子规模限制 |

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "total": 17, // 已上线的句子数目
  7. "collection": [
  8. {
  9. "hitokoto": "我要这天,再遮不住我眼,要这地,再埋不了我心,要这众生,都明白我意,要那诸佛,都烟消云散!",
  10. "uuid": "e6e4051b-f447-4525-b6f7-12d6626f7e1a",
  11. "type": "d",
  12. "from": "悟空传",
  13. "from_who": null,
  14. "creator": "a632079",
  15. "creator_uid": 1044,
  16. "reviewer": 0,
  17. "commit_from": "web",
  18. "created_at": "1523579110",
  19. "status": "accept"
  20. },
  21. ...
  22. ]
  23. }
  24. ],
  25. "ts": 1581926366834
  26. }

喜爱接口


::: theorem 获得句子喜爱数据

  • 路径: /like
  • 方法: GET
  • 身份认证:否
  • 无返回:否
  • 此接口未来可能变动,建议定期观察。 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |————|————-|—————-|——|————| | sentence_uuid | string | uuid | 34662c58-8eba-4757-a637-c7c11e9f537e | 句子 UUID |

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "sets": [
  7. {
  8. "user_id": 0, // 用户标识,0 代表游客
  9. "created_time": "2016-09-10T03:38:17.000000Z"
  10. },
  11. ...
  12. ],
  13. "total": 20
  14. }
  15. ],
  16. "ts": 1582539956779
  17. }

::: theorem 喜爱句子

  • 路径: /like
  • 方法: POST
  • 身份认证:是(但是不鉴权也是可以用的)
  • 无返回:否
  • 此接口未来可能变动,建议定期观察。 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |————|————-|—————-|——|————| | sentence_uuid | string | uuid | 34662c58-8eba-4757-a637-c7c11e9f537e | 句子 UUID |

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | 400 | 触发校验器错误 | | -1 | 已经赞过了 | | -2 | 句子不存在 |

以下是一个响应示例:

  1. {
  2. "status":200,
  3. "message":"Ok.",
  4. "data":[
  5. {
  6. "ip":"157.0.165.97", // 客户端 IP
  7. "user_id":0 // 0 代表游客,其他代表用户标识
  8. }
  9. ],
  10. "ts":1582540053746
  11. }

::: theorem 撤回喜爱

  • 路径: /like/cancel
  • 方法: POST
  • 身份认证:是
  • 无返回:是
  • 此接口未来可能变动,建议定期观察。 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |————|————-|—————-|——|————| | sentence_uuid | string | uuid | 34662c58-8eba-4757-a637-c7c11e9f537e | 句子 UUID |

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status":200,
  3. "message":"Ok.",
  4. "data":[],
  5. "ts":1582566052999
  6. }

句子相关


::: theorem 提交一言

  • 路径: /mark
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

此接口无请求参数

以下是一个响应示例:

  1. {
  2. "status":200,
  3. "message":"Ok.",
  4. "data":[
  5. {
  6. "id":1,
  7. "text":"绝妙好辞,字字珠玑",
  8. "level":"info",
  9. "property":1,
  10. "updated_at":"2020-03-18 06:44:21",
  11. "created_at":"2020-03-18 06:44:21"
  12. },
  13. {
  14. "id":2,
  15. "text":"不符合社会主义核心价值观",
  16. "level":"danger",
  17. "property":2,
  18. "updated_at":"2020-03-18 06:43:59",
  19. "created_at":"2020-03-18 06:43:59"
  20. },
  21. {
  22. "id":3,
  23. "text":"语言低俗/庸俗/恶劣",
  24. "level":"danger",
  25. "property":2,
  26. "updated_at":"2020-03-18 06:44:41",
  27. "created_at":"2020-03-18 06:44:41"
  28. },
  29. {
  30. "id":4,
  31. "text":"没有修改价值",
  32. "level":"warning",
  33. "property":2,
  34. "updated_at":"2020-03-18 06:46:52",
  35. "created_at":"2020-03-18 06:46:52"
  36. },
  37. {
  38. "id":5,
  39. "text":"句子过长",
  40. "level":"warning",
  41. "property":2,
  42. "updated_at":"2020-03-18 06:47:09",
  43. "created_at":"2020-03-18 06:47:09"
  44. },
  45. {
  46. "id":6,
  47. "text":"存在标点符号缺失/错误使用",
  48. "level":"warning",
  49. "property":3,
  50. "updated_at":"2020-03-18 06:48:58",
  51. "created_at":"2020-03-18 06:48:58"
  52. },
  53. {
  54. "id":7,
  55. "text":"存在换行/空格现象",
  56. "level":"warning",
  57. "property":3,
  58. "updated_at":"2020-03-18 06:47:53",
  59. "created_at":"2020-03-18 06:47:53"
  60. },
  61. {
  62. "id":8,
  63. "text":"来源错误或误用",
  64. "level":"danger",
  65. "property":3,
  66. "updated_at":"2020-03-18 06:49:09",
  67. "created_at":"2020-03-18 06:49:09"
  68. },
  69. {
  70. "id":9,
  71. "text":"作者错误或误用",
  72. "level":"danger",
  73. "property":3,
  74. "updated_at":"2020-03-18 06:49:19",
  75. "created_at":"2020-03-18 06:49:19"
  76. },
  77. {
  78. "id":10,
  79. "text":"作者/来源填写有误(位置不对)",
  80. "level":"info",
  81. "property":3,
  82. "updated_at":"2020-03-18 06:50:09",
  83. "created_at":"2020-03-18 06:50:09"
  84. },
  85. {
  86. "id":11,
  87. "text":"句子存在错误",
  88. "level":"danger",
  89. "property":3,
  90. "updated_at":"2020-03-18 06:50:25",
  91. "created_at":"2020-03-18 06:50:25"
  92. },
  93. {
  94. "id":12,
  95. "text":"句子信息存疑",
  96. "level":"warning",
  97. "property":3,
  98. "updated_at":"2020-03-18 06:50:41",
  99. "created_at":"2020-03-18 06:50:41"
  100. },
  101. {
  102. "id":13,
  103. "text":"分类有误",
  104. "level":"danger",
  105. "property":3,
  106. "updated_at":"2020-03-18 06:50:55",
  107. "created_at":"2020-03-18 06:50:55"
  108. }
  109. ],
  110. "ts":1584505155611
  111. }

::: theorem 提交一言

  • 路径: /hitokoto/append
  • 方法: POST
  • 身份认证:是
  • 无返回:否 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |—————|————|——————-|——————-|——| | from | string | 非空 | 火影忍者 | 来源 | | from_who | string | 可选 | 漩涡鸣人 | 作者 | | hitokoto | string | 非空 | 你没有受伤吧,胆小鬼。 | 句子 | | type | string | 非空;符合使用说明定义 | a | 分类 |

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | -1 | 无法提交,服务器问题。 | | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "uuid": "fc167686-268e-4611-9266-c09db6e3bb3f",
  7. "hitokoto": "你没有受伤吧,胆小鬼。",
  8. "type": "a",
  9. "from": "火影忍者",
  10. "from_who": "漩涡鸣人",
  11. "creator": "a632079",
  12. "creator_uid": 1044,
  13. "commit_from": "api",
  14. "created_at": "1581926206",
  15. "id": 2818
  16. }
  17. ],
  18. "ts": 1581926206137
  19. }

::: theorem 查看句子

  • 路径: /hitokoto/:uuid
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

此接口无请求参数

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | -1 | 句子不存在 | | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "hitokoto": "英雄意味着强大,英雄意味着孤独,最后一幕一定是英雄渐行渐远,我的英雄也是那样的存在。",
  7. "uuid": "ddcfb677-4d67-4938-9aec-77448eeb5b6f",
  8. "type": "a",
  9. "from": "四月是你的谎言",
  10. "from_who": null,
  11. "creator": "yeye",
  12. "creator_uid": 29,
  13. "reviewer": 0,
  14. "commit_from": "web",
  15. "created_at": "1473562069",
  16. "status": "accept"
  17. }
  18. ],
  19. "ts": 1581879533419
  20. }

::: theorem 查看句子审核标记

  • 路径: /hitokoto/:uuid/mark
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

此接口无请求参数

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status":200,
  3. "message":"Ok.",
  4. "data":[ // 返回带有审核标识的数组,如果句子不存在或者无记录为空数组
  5. 4,
  6. 6,
  7. 13
  8. ],
  9. "ts":1584503923373
  10. }

::: theorem 提交评分

  • 路径: /hitokoto/:uuid/score
  • 方法: POST
  • 身份认证:是
  • 无返回:否 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |—————|————|——————-|——————-|——| | score | integer | [0, 5] | 5 | 分数 | | comment | string | 可选 | 这个句子真棒! | 评价 |

::: danger 如果低于 3 分(不包含 0 分),而无评价的话,视为无效评分!此规则待商榷 :::

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | -1 | 用户已打分 | | -2 | 句子不存在或未上线 | | 500 | 无法提交,服务器问题。 | | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "score": "5",
  7. "comment": "很棒棒哦!",
  8. "sentence_uuid": "ddcfb677-4d67-4938-9aec-77448eeb5b6f",
  9. "sentence_score": {
  10. "total": 5,
  11. "participants": 1,
  12. "average": 5
  13. }
  14. }
  15. ],
  16. "ts": 1581879614503
  17. }

::: theorem 查看句子评分

  • 路径: /hitokoto/:uuid/score
  • 方法: GET
  • 身份认证:是
  • 无返回:否 :::

此句子无请求参数

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | -1 | 句子不存在或未上线 | | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "id": 1,
  7. "sentence_uuid": "ddcfb677-4d67-4938-9aec-77448eeb5b6f",
  8. "score": {
  9. "total": 5,
  10. "participants": 1,
  11. "average": 5
  12. },
  13. "logs": [
  14. {
  15. "id": 1,
  16. "sentence_uuid": "ddcfb677-4d67-4938-9aec-77448eeb5b6f",
  17. "user_id": 1044,
  18. "score": 5,
  19. "comment": "很棒棒哦!",
  20. "updated_at": "2020-02-16T11:00:14.000000Z",
  21. "created_at": "2020-02-16T11:00:14.000000Z"
  22. }
  23. ],
  24. "updated_at": "2020-02-16T11:00:14.000000Z",
  25. "created_at": "2020-02-16T11:00:14.000000Z"
  26. }
  27. ],
  28. "ts": 1581918559301
  29. }

::: theorem 报告句子问题

  • 路径: /hitokoto/:uuid/report
  • 方法: POST
  • 身份认证:是
  • 无返回:否 :::

以下为请求参数: | 参数 | 类型 | 规则 | 示例 | 备注 | |—————|————|——————-|——————-|——| | comment | string | 非空 | 个人感觉没啥意义。 | 报告原因 |

::: danger 请勿尝试无意义举报,多次无意义举报将封禁账户。 :::

可能触发的错误: | 错误代码 | 原因 | |———|——————-| | -1 | 句子不存在或未上线 | | 400 | 触发校验器错误 |

以下是一个响应示例:

  1. {
  2. "status": 200,
  3. "message": "Ok.",
  4. "data": [
  5. {
  6. "sentence_uuid": "76f9fa17-ecda-4dd1-8e4e-e5fdee2bd7ee",
  7. "user_id": 1044,
  8. "comment": "这个句子缺句号!请管理员看一下!",
  9. "updated_at": "2020-02-17T05:56:19.000000Z",
  10. "created_at": "2020-02-17T05:56:19.000000Z",
  11. "id": 2
  12. }
  13. ],
  14. "ts": 1581918979563
  15. }