当前位置:   article > 正文

UniAPP社区论坛项目实战--社区服务 API 接口文档_it社区接口文档

it社区接口文档

社区服务 API 接口文档

在这里插入图片描述

基础相关信息

  1. 服务器请求地址:http://ts.lagou.uieee.com

    客户端访问统一接口规则 : /api/v2/

    gitHub 完整 API 接口服务文档查阅:https://github.com/slimkit/slimkit.github.io/tree/gh-pages/docs

  2. 体验版前台地址:http://ts.lagou.uieee.com/feeds

  3. 后台管理系统地址: http://ts.lagou.uieee.com/admin

    体验账号:root

    登陆密码:root

一、广告管理

1.1 查询所有广告位

GET /advertisingspace
  • 1
Status: 200 OK
[
    {
        "id": 1,
        "channel": "boot", // 广告位所属模块
        "space": "boot", // 广告位标识
        "alias": "启动图广告", // 广告位别名
        "allow_type": "image", // 广告位允许的广告类型
        "format": { // 广告数据格式
            "image": {
                "image": "图片|string|表单描述",
                "link": "链接|string|表单描述"
            }
        },
        "created_at": "2017-07-27 06:56:36",
        "updated_at": "2017-07-27 06:56:36"
    },
    // 更多......
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

1.2 获取一个广告位的广告列表

// space 代表 广告位 ID 参数信息
GET /advertisingspace/:space/advertising
  • 1
  • 2
Status: 200 OK
[
    {
        "id": 1,
        "space_id": 1, // 广告位id
        "title": "广告1", // 广告标题
        "type": "image", // 广告类型
        "data": { // 广告数据
            "image": "http://plus.bai/api/v2/files/1", // 广告图片地址
            "link": "http://www.baidu.com" // 广告链接
        },
        "sort": 2,
        "created_at": "2017-07-27 15:09:15",
        "updated_at": "2017-07-27 15:09:16"
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

1.3 批量获取广告列表

GET /advertisingspace/advertising?space=1,2,3
  • 1
名称类型描述
space字符串广告位id,多个以逗号隔开
Status: 200 OK
[
    {
        "id": 1,
        "space_id": 1, // 广告位id
        "title": "广告1", // 广告标题
        "type": "image", // 广告类型
        "data": { // 广告数据
            "image": "http://plus.bai/api/v2/files/1", // 广告图片地址
            "link": "http://www.baidu.com" // 广告链接
        },
        "sort": 2,
        "created_at": "2017-07-27 15:09:15",
        "updated_at": "2017-07-27 15:09:16"
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

二、动态管理

2.1 批量获取动态列表信息

GET /feeds
  • 1
名称类型描述
limitInteger可选,默认值 20 ,获取条数
afterInteger可选,上次获取到数据最后一条 ID,用于获取该 ID 之后的数据。
typeString可选,默认值 new,可选值 newhotfollowusers
searchStringtype = new时可选,搜索关键字
userIntegertype = users 时可选,默认值为当前用户id
screenstringtype = users 时可选,paid-付费动态 pinned - 置顶动态
idinteger or string可选,按照动态 ID 获取动态列表。
hotinteger可选,仅 type=hot 时有效,用于热门数据翻页标记!上次获取数据最后一条的 hot
{
    "ad": null,
    "pinned": [...], // 置顶动态列表
    "feeds": [
        {
            "id": 1,
            "user_id": 1,
            "feed_content": "12312312312",
            "feed_from": 1,
            "like_count": 0,
            "feed_view_count": 4,
            "feed_comment_count": 3,
            "feed_latitude": "",
            "feed_longtitude": "",
            "feed_geohash": "",
            "audit_status": 1,
            "feed_mark": 12312312,
            "pinned": 1,
            "pinned_amount": 0,
            "created_at": "2017-08-01 16:46:19",
            "updated_at": "2017-08-05 03:29:55",
            "deleted_at": null,
            "comments": [
                {
                    "id": 4,
                    "user_id": 1,
                    "target_user": 1,
                    "reply_user": 0,
                    "body": "辣鸡啊啊啊啊",
                    "commentable_id": 1,
                    "commentable_type": "feeds",
                    "created_at": "2017-08-05 03:29:55",
                    "updated_at": "2017-08-05 03:29:55",
                    "pinned": true
                }
            ],
            "has_collect": false,
            "has_like": false,
            "images": [],
            "paid_node": null,
            "topics": [ // 话题数据
                {
                    "id": 1,            // 话题 ID
                    "name": "第一个话题" // 话题名称
                }
            ]
        }
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
名称类型描述
idint动态数据id
user_idint发布者id
feed_contentstring动态内容
feed_fromint动态来源 1:pc 2:h5 3:ios 4:android 5:其他
like_countint点赞数
feed_view_countint查看数
feed_comment_countint评论数
feed_latitudestring纬度
feed_longtitudestring经度
feed_geohashstringGEO
audit_statusint审核状态
feed_markint标记
pinnedint置顶标记
pinned_amountint置顶金额
commentsarray动态评论 列表中返回五条
comments.idint评论id
comments.user_idint评论者id
comments.target_userint资源作者id
comments.reply_userint被回复者id
comments.bodystring评论内容
comments.pinnedbool评论置顶标记 不存在则为普通评论
has_collectbool是否已收藏
has_likebool是否已赞
imagesarray图片信息 同单条动态数据结构一致
paid_nodearray付费节点信息 同单条动态数据结构一致 不存在时为null
topicsArray参考「动态详情」,内容一致。

2.2 获取指定 ID 动态详情

GET /feeds/:feed
  • 1
{
    "id": 13,
    "created_at": "2017-06-21 01:54:52",
    "updated_at": "2017-06-21 01:54:52",
    "deleted_at": null,
    "user_id": 1, // 发布动态的用户
    "feed_content": "动态内容", // 内容
    "feed_from": 2,
    "like_count": 0, // 点赞数
    "feed_view_count": 0, // 查看数
    "feed_comment_count": 0, // 评论数
    "feed_latitude": null, //  纬度
    "feed_longtitude": null, // 经度
    "feed_geohash": null, // GeoHash
    "audit_status": 1, // 审核状态
    "feed_mark": 12,
    "has_like": true, // 是否点赞
    "has_collect": false, // 用户是否收藏当前动态
    "paid_node": {
        "paid": true, // 当前用户是否已经付费
        "node": 9, // 付费节点
        "amount": 20 // 付费金额
    },
    "comment_paid_node": { // 评论收费信息.
        "paid": true,
        "node": 11,
        "amount": 50
    },
    "reward": {
        "count": 3, // 被打赏次数
        "amount": "600" // 被打赏总金额
    },
    "images": [ // 图片
        {
            "file": 4, // 文件 file_with 标识 不收费图片只存在 file 这一个字段。
            "size": null, // 图像尺寸,非图片为 null,图片没有尺寸也为 null,
            "amount": 100, // 收费多少
            "type": "download", // 收费方式
            "paid": false, // 当前用户是否购买
            "paid_node": 10 付费节点
        },
        {
            "file": 5,
            "size": '1930x1930' // 当图片有尺寸的时候采用 width x height 格式返回。
        }
    ],
    "likes": [
        {
            "id": 2,
            "user_id": 1,
            "target_user": 1,
            "likeable_id": 1,
            "likeable_type": "feeds",
            "created_at": "2017-07-12 08:09:07",
            "updated_at": "2017-07-12 08:09:07"
        }
    ],
    "topics": [ // 话题数据
        {
            "id": 1,            // 话题 ID
            "name": "第一个话题" // 话题名称
        }
    ],
    "repostable_type": null, // 转发资源类型
    "repostable_id": null,   // 转发资源 ID
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66

2.3 创建一条动态

POST /feeds
  • 1
NameTypeDescription
feed_contentstring分享内容。如果存在附件,则为可选,否则必须存在
feed_frominteger客户端标识,1-PC、2-Wap、3-iOS、4-android、5-其他
feed_markmixed客户端请求唯一标识
feed_latitudestring纬度,当经度, GeoHash 任意一个存在,则本字段必须存在
feed_longtitudestring经度,当纬度, GeoHash 任意一个存在,则本字段必须存在
feed_geohashstringGeoHash,当纬度、经度 任意一个存在,则本字段必须存在
amountinteter动态收费,不存在表示不收费,存在表示收费。
imagesarray结构:{ id: <id>, amount: <amount>, type: <read,download> }amount 为可选,id 必须存在,amount 为收费金额,单位分, type 为收费方式
topicsArray可选,需要关联的话题 ID 数组。
topics.*integer如果 topics 存在则必须,话题 ID。
repostable_typestring可选,如果 repostable_id 存在则必须,转发资源类型标识。
repostable_idinteger可选,如果 repostable_type 存在则必须,转发资源 ID。
{
    "feed_content": "内容",
    "feed_from": "5",
    "feed_mark": "xxxxx1",
    "images": [
        {
            "id": 1
        },
        {
            "id": 1
            "amount": 100,
            "type": "read"
        }
    ],
    "feed_latitude": "12.32132123",
    "feed_longtitude": "32.33332123",
    "feed_geohash": "GdUDHyfghjd==",
    "amount": 450,
    "topics": [1, 2, 3]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
Status: 201 Created
{
    "message": [
        "发布成功"
    ],
    "id": 1
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2.4 点赞、取消点赞、点赞列表 当前动态

点赞

POST /feeds/:feed/like
  • 1
Status: 201 Created
{
    "message": [
        "操作成功"
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

取消点赞

DELETE /feeds/:feed/unlike
  • 1
Status: 204 Not Content
  • 1

点赞人列表

GET /feeds/:feed/likes
  • 1
名称类型描述
limitInteger获取条数,默认 20
afterIntegerid 获取之后数据,默认 0
Status: 200 OK
[
    {
        "id": 3,
        "user_id": 2,
        "target_user": 1,
        "likeable_id": 1,
        "likeable_type": "feeds",
        "created_at": "2017-07-12 08:09:07",
        "updated_at": null,
        "user": {
            "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",
            "following": true,
            "follower": false,
            "avatar": null,
            "bg": null,
            "verified": null,
            "extra": null
        }
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
字段描述
id喜欢 ID
user_id点喜欢用户 ID
target_user接收喜欢用户 ID
likeable_id喜欢的资源 ID,配置 likeable_type 表示不同资源
likeable_type喜欢的资源类型。
created_at点喜欢时间
updated_at更新时间
user点喜欢的用户资料,结构参考 「用户信息」接口说明。

2.5 评论指定 ID 动态

发布一条评论

POST /feeds/:feed/comments
  • 1
NameTypeDescription
bodyString评论内容
reply_userInteger评论用户 ID
Status: 201 Created
{
    "message": [
        "操作成功"
    ],
    "comment": {
        "user_id": 1,
        "reply_user": 0,
        "target_user": 1,
        "body": "我是第三条评论",
        "commentable_type": "feeds",
        "commentable_id": 1,
        "updated_at": "2017-07-20 08:53:24",
        "created_at": "2017-07-20 08:53:24",
        "id": 3
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

获取当前动态所有评论

GET /feeds/:feed/comments
  • 1
NameTypeDescription
limitInteger单次请求条数,默认为20
afterInteger最后一条评论的 ID 用来做请求区分
Status: 200 OK
{
    "pinneds": [
        {
            "id": 2,
            "user_id": 1,
            "target_user": 1,
            "reply_user": 0,
            "body": "我是第一条评论",
            "commentable_id": 1,
            "commentable_type": "feeds",
            "created_at": "2017-07-20 08:35:18",
            "updated_at": "2017-07-20 08:35:18"
        }
    ],
    "comments": [
        {
            "id": 3,
            "user_id": 1,
            "target_user": 1,
            "reply_user": 0,
            "body": "我是第三条评论",
            "commentable_id": 1,
            "commentable_type": "feeds",
            "created_at": "2017-07-20 08:53:24",
            "updated_at": "2017-07-20 08:53:24"
        }
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
NameDescription
pinnedsPinned comments list.
commentComments list.
*.idThe ID of the comment.
*.user_idCommentator.
*.target_userOwn dynamic publisher.
*.reply_userReverted to the user.
*.bodyThe body of the comment.
*.commentable_idFeeds id.
*.commentable_typeCommentable type.
*.created_atComment release time.
*.updated_atComment update time.

获取当前一条评论的详细信息

GET /feeds/:feed/comments/:comment
  • 1
Status: 200 OK
{
    "id": 1,
    "user_id": 1,
    "target_user": 1,
    "reply_user": 0,
    "body": "我是第一条评论",
    "commentable_id": 1,
    "commentable_type": "feeds",
    "created_at": "2017-07-20 08:34:41",
    "updated_at": "2017-07-20 08:34:41"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
NameDescription
idThe ID of the comment.
user_idCommentator.
target_userOwn dynamic publisher.
reply_userReverted to the user.
bodyThe body of the comment.
commentable_idFeeds id.
commentable_typeCommentable type.
created_atComment release time.
updated_atComment update time.

删除一条评论

DELETE /feeds/:feed/comments/:comment
  • 1
Status: 204 No Content
  • 1

2.6 删除指定 ID动态

DELETE /feeds/:feed/currency
  • 1

2.7 收藏、取消收藏当前动态

收藏

POST /feeds/:feed/collections
  • 1
Status: 201 Created
{
    "message": [
        "收藏成功"
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

取消收藏

DELETE /feeds/:feed/uncollect
  • 1
Status: 204 No Centent
  • 1

收藏列表

GET /feeds/collections
  • 1
名称类型描述
limitInteger可选,默认值 20 ,获取条数
offsetInteger可选,偏移量,用于翻页,传入已请求过的数据总数
userIntegertype = users 时可选,默认值为当前用户id
Status: 200 OK
[
    {...}  // 数据参考动态单条内容
]
  • 1
  • 2
  • 3
  • 4

2.8 举报一个动态

POST /feeds/:feed/reports
  • 1
名称描述
reason举报理由
Http Status 201
{
    "message": [
        "操作成功"
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三、资讯管理

3.1 批量获取资讯列表信息

GET /news
  • 1
名称说明
limit数据返回条数 默认为20
after数据翻页标识
key搜索关键字
cate_id分类id
recommend推荐筛选 =1为筛选推荐资讯列表
id需要按照 ID 获取的资讯 ID,多个使用半角 , 进行分割
Status: 200 OK
[
    {
        "id": 2,
        "title": "asdasdasdad",
        "subject": "阿拉拉啊拉",
        "created_at": "2017-08-02 03:28:38",
        "updated_at": "2017-08-02 09:08:51",
        "from": "原创",
        "author": "root",
        "user_id": 1,
        "hits": 10,
        "has_collect": false,
        "has_like": false,
        "category": {
            "id": 1,
            "name": "1121",
            "rank": 0
        },
        "image": {
            "id": 2,
            "size": "370x370"
        }
    },
    {
        "id": 1,
        "title": "123",
        "subject": "0",
        "created_at": "2017-07-31 11:56:32",
        "updated_at": "2017-07-31 06:31:31",
        "from": "原创",
        "author": "root",
        "user_id": 1,
        "hits": 5,
        "has_collect": false,
        "has_like": false,
        "category": {
            "id": 1,
            "name": "1121",
            "rank": 0
        },
        "image": {
            "id": 1,
            "size": "100x100"
        }
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
名称类型说明
idint数据id
titlestring资讯标题
subjectstring副标题
fromstring来源
authorstring作者
user_idint发布者id
hitsint点击数
has_collectbool当前用户是否已收藏
has_likebool当前用户是否已点赞
categoryarray所属分类信息
category.idint所属分类id
category.namestring所属分类名称
category.rankint所属分类排序
imagearray/null资讯封面信息 为null时表示该资讯无缩略图
image.idint资讯封面附件id
image.sizestring资讯封面尺寸

3.2 获取指定 ID 资讯详情信息

GET /news/{news}
  • 1
Status: 200 OK
{
    "id": 2,
    "created_at": "2017-08-02 03:28:38",
    "updated_at": "2017-08-02 09:08:51",
    "title": "asdasdasdad",
    "content": "@![辣鸡啊](3) adasd image @![辣鸡啊](4)",
    "digg_count": 0,
    "comment_count": 0,
    "hits": 4,
    "from": "原创",
    "is_recommend": 0,
    "subject": "阿拉拉啊拉",
    "author": "root",
    "audit_status": 0,
    "audit_count": 0,
    "user_id": 1,
    "contribute_amount": 100,
    "has_collect": false,
    "has_like": false,
    "is_pinned": false,
    "category": {
        "id": 1,
        "name": "1121",
        "rank": 0
    },
    "image": {
        "id": 2,
        "size": "370x370"
    },
    "tags": [
        {
            "id": 2,
            "name": "标签2",
            "tag_category_id": 1
        },
        {
            "id": 1,
            "name": "标签1",
            "tag_category_id": 1
        }
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
名称类型说明
idint资讯id
titlestring标题
contenttext资讯内容 markdown格式 含自定义标签()
digg_countint点赞数
comment_countint评论数
hitsint点击量
fromstring来源
is_recommendint是否为推荐
subjectstring副标题
authorstring作者
audit_statusint审核状态 0-正常 1-待审核 2-草稿 3-驳回 4-删除 5-退款中
audit_countint审核驳回次数
user_idint发布者id
contribute_amountint投稿金额
has_collectbool当前用户是否已收藏
has_likebool当前用户是否已点赞
is_pinnedbool是否已置顶 1-已置顶
categoryarray所属分类信息
category.idint所属分类id
category.namestring所属分类名称
category.rankint所属分类排序
imagearray资讯封面信息
image.idint资讯封面附件id
image.sizestring资讯封面尺寸
tagsarray标签列表
tags.idint标签id
tags.namestring标签名称
tags.tag_category_idint标签分类id

3.3 点赞、取消点赞、点赞列表当前资讯

喜欢资讯

POST /news/{news}/likes
  • 1
Status: 201 Created
  • 1

取消喜欢资讯

DELETE /news/{news}/likes
  • 1
Status: 204 No Content
  • 1

资讯喜欢列表

GET /news/{news}/likes
  • 1
Status: 200 Ok
[
    {
        "id": 5,
        "user_id": 1,
        "target_user": 1,
        "likeable_id": 4,
        "likeable_type": "news",
        "created_at": "2017-08-08 02:25:34",
        "updated_at": "2017-08-08 02:25:34",
        "user": {
            "id": 1,
            "name": "baishi",
            "bio": null,
            "sex": 1,
            "location": null,
            "created_at": "2017-07-31 03:16:19",
            "updated_at": "2017-08-09 10:09:28",
            "following": false,
            "follower": false,
            "avatar": null,
            "bg": null,
            "verified": null,
            "extra": {
                "user_id": 1,
                "likes_count": 2,
                "comments_count": 9,
                "followers_count": 0,
                "followings_count": 0,
                "updated_at": "2017-08-17 07:05:06",
                "feeds_count": 0,
                "questions_count": 0,
                "answers_count": 19
            }
        }
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
名称类型说明
user_idint喜欢用户id
target_userint被喜欢用户id
likeable_idint被喜欢资源id
created_atdate喜欢时间
userarray用户信息

3.4 评论指定 ID 资讯

评论一条资讯

POST /news/{news}/comments
  • 1
名称描述
body评论内容
reply_user被回复用户id 默认为0
Status: 201 Created
{
    "message": [
        "操作成功"
    ],
    "comment": {
        "user_id": 1,
        "reply_user": 0,
        "target_user": 1,
        "body": "baishi",
        "commentable_type": "news",
        "commentable_id": 2,
        "updated_at": "2017-08-10 09:31:58",
        "created_at": "2017-08-10 09:31:58",
        "id": 5
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
名称描述
message消息
comment评论信息
comment.id评论id
comment.user_id评论者id
comment.target_user资讯发布者id
comment.reply_user被回复者id
comment.body评论内容

获取一条资讯的评论列表

GET /news/{news}/comments
  • 1
名称类型必须说明
limitint-数据返回条数
afterint-数据翻页标识
Status: 200 OK
{
    "pinneds": [],
    "comments": [
        {
            "id": 2389,
            "user_id": 215,
            "target_user": 0,
            "reply_user": 0,
            "created_at": "2017-07-12 01:13:45",
            "updated_at": "2017-07-12 01:13:45",
            "commentable_type": "news",
            "commentable_id": 31,
            "body": "而且其实我想把这篇资讯分享到我的动态,然而……"
        },
        {
            "id": 2388,
            "user_id": 215,
            "target_user": 0,
            "reply_user": 0,
            "created_at": "2017-07-12 01:13:01",
            "updated_at": "2017-07-12 01:13:01",
            "commentable_type": "news",
            "commentable_id": 31,
            "body": "我下拉到底部后,评论编辑窗口不见了……,"
        }
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
名称描述
pinneds置顶评论
comments评论列表
id评论id
user_id评论者id
target_user资讯发布者id
reply_user被回复者id
body评论内容

删除一条资讯评论

DELETE /news/{news}/comments/{comment}
  • 1
Status: 204 No Content
  • 1

3.5 收藏、取消收藏资讯信息

收藏资讯

POST /news/{news}/collections
  • 1
Status: 201 Created
  • 1

取消收藏资讯

DELETE /news/{news}/collections
  • 1
Status: 204 No Content
  • 1

获取收藏资讯

GET /news/collections
  • 1
名称类型必填说明
limitint-数据返回条数
afterint-数据翻页标识
Status: 200 Ok
[
    {
        "id": 2,
        "title": "asdasdasdad",
        "subject": "阿拉拉啊拉",
        "created_at": "2017-08-02 03:28:38",
        "updated_at": "2017-08-03 07:53:34",
        "from": "原创",
        "author": "root",
        "user_id": 1,
        "hits": 5,
        "has_collect": true,
        "has_like": false,
        "category": {
            "id": 1,
            "name": "1121",
            "rank": 0
        },
        "image": {
            "id": 2,
            "size": "370x370"
        }
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
名称类型说明
idint数据id
titlestring资讯标题
subjectstring副标题
fromstring来源
authorstring作者
user_idint发布者id
hitsint点击数
has_collectbool当前用户是否已收藏
has_likebool当前用户是否已点赞
categoryarray所属分类信息
category.idint所属分类id
category.namestring所属分类名称
category.rankint所属分类排序
imagearray资讯封面信息
image.idint资讯封面附件id
image.sizestring资讯封面尺寸

3.6 举报一个资讯

POST /news/:news/reports
  • 1
名称描述
reason举报理由
Http Status 201
{
    "message": [
        "操作成功"
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

四、用户管理

4.1 用户注册 - 图形验证码

PS: 使用该图形验证码的目的是为了防止 短信、邮件 恶意注册

在这里验证码验证的过程掌握逻辑即可

<image :src=" 'http://ts.lagou.uieee.com/passport/captcha/' + Math.random() " />
  • 1

4.2 用户注册 - 获取验证码

PS:使用验证码的目的是为了确保用户注册电话或者邮箱的唯一性,防止用户恶意注册

发送验证码支持 emailphone

非注册用户发送:

POST /verifycodes/register
  • 1

注册用户发送:

POST /verifycodes
  • 1
名称类型描述
phoneString如果 email 不存在则必须,以 sms 模式给手机发送验证码。
emailString如果 phone 不存在则必须,以 mail 模式给邮箱发送验证码。
Status: 202 Accepted
{
    "message": [
        "获取成功"
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.3 用户注册 - 提交注册信息

POST /users
  • 1
名称类型描述
name字符串必须,用户名
phone字符串如果 verifiable_typesms 则必须, 手机号码。
emailString如果 verifiable_typemail 则必须, E-Mail。
passwordString可选,密码,如果不输入密码,允许用户无密码注册。
verifiable_type枚举: mailsms必须,验证码发送模式。
verifiable_code字符串或数字必须,用户收到的验证码。(教学阶段验证码统一使用 8888 )
Status: 201 Created
{
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImlzcyI6Imh0dHA6Ly9wbHVzLmlvL2FwaS92Mi90b2tlbnMiLCJpYXQiOjE1MDAzNjU5MzQsImV4cCI6MTUwMTU3NTUzNCwibmJmIjoxNTAwMzY1OTM0LCJqdGkiOiJ1aXlvdTQwNnJsdU9pa3l3In0.OTM4mbH3QW7busunRsFUsheE5vysuIfrBrwjWnd0J6k",
    "ttl": 20160,
    "refresh_ttl": 40320
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.4 用户登陆

POST /auth/login
  • 1
名称类型描述
login字符串必须,用户认证字段,可以是 nameemailphone
password字符串可选,用户密码。
verifiable_codestring可选,登录验证码。

password 或者 verifiable_code 必须选择一个,如果选择 verifiable_code 进行登录。那么 login 字段只能是 phone 或者 email

Status: 20o OK
{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vcGx1cy5pby9hcGkvdjIvYXV0aC9sb2dpbiIsImlhdCI6MTUxNTU3NDE0MSwiZXhwIjoxNTE1NTc3NzQxLCJuYmYiOjE1MTU1NzQxNDEsImp0aSI6Imx1MWtFcDd1UjZpWnoxV3giLCJzdWIiOjEsInBydiI6IjQ4ZTQ1MzgzMWNlYmE1ZTU3YTQ3NWU2ODY0OWNmZGVlNmU5N2Q4ZDIifQ.0_u1dgb-rSr2o7nIx4Q1n1NNcr1LMAtgTbKsFFdUvmg",
    "token_type": "bearer",
    "expires_in": 60,
    "refresh_ttl": 20160
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
字段描述
access_token授权 Token
token_typeToken 类型
expires_in过期时间,单位分
refresh_ttl刷新过期时间,单位分

4.5 用户退出

POST|PUT|PATCH|GET /auth/logout
  • 1

需要 认证

Status: 200 OK
{
    "message": "退出成功"
}
  • 1
  • 2
  • 3
  • 4

4.6 刷新当前用户 Token

POST|PUT|PATCH|GET /auth/refresh
  • 1

需要 认证

4.7 获取当前登录用户未读消息

Unread message count(未读消息统计)

GET /user/counts
  • 1
Status: 200 OK
{
    "user": { // 用户相关
        "following": 1, // 用户关注者新增(粉丝新增)数量
        "liked": 0,     // 被点赞数
        "commented": 0, // 被评论数
        "system": 0,    // 系统消息,
        "news-comment-pinned": 0, // 置顶评论消息
        "feed-comment-pinned": 0, // 动态置顶消息
        "mutual": 0,    // 其他消息
        "at": 2,        // At 我的消息
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

At me(@我的)

GET /user/message/atme
  • 1
NameTypeDescription
limitinteger可选,请求的数据条数,默认 15,允许范围 1 - 100
indexinteger可选,数据开始查找的位置标记,默认 0,来源响应体的 id 字段。
directionenum可选,以 index 标记开始的数据顺序,默认 desc,允许值:asc/desc
Status: 200 OK
[
    {
        "id": 1,               // 消息 ID
        "user_id": 1,          // 消息接收人ID(当前用户ID)
        "resourceable": {      // 资源
            "type": "feeds",   // 资源类型
            "id": 1            // 资源ID
        },
        "created_at": "2018-08-13T08:06:54Z" // 消息创建时间
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

4.8 获取当前登陆用户签到相关信息

获取签到信息

GET /user/checkin
  • 1
Status: 200 OK
{
    "rank_users": [
        {
            "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",
            "avatar": "http://plus.io/api/v2/users/1/avatar",
            "bg": "http://plus.io/storage/user-bg/000/000/000/01.png",
            "verified": null,
            "extra": {
                "user_id": 1,
                "likes_count": 0,
                "comments_count": 8,
                "followers_count": 0,
                "followings_count": 1,
                "updated_at": "2017-08-11 01:32:36",
                "feeds_count": 0,
                "questions_count": 5,
                "answers_count": 3,
                "checkin_count": 2,
                "last_checkin_count": 2
            }
        }
    ],
    "checked_in": true,
    "checkin_count": 2,
    "last_checkin_count": 2,
    "attach_balance": 0
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
字段描述
rank_users当日前五签到用户,按照签到时间顺序排列。(参考「用户资料」接口文档)
checked_in当前用户是否已签到。
checkin_count当前用户签到总天数。
last_checkin_count当前用户连续签到天数。
attach_balance签到用户积分增加值,单位是真实货币「分」单位。

签到

PUT /user/checkin
  • 1
Status: 204 No Content
  • 1

累计签到排行榜

GET /checkin-ranks
  • 1
名称类型描述
offsetInteger数据偏移数,默认为 0
limitInteger查询数据条数
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",
        "follwing": false,
        "follower": false,
        "avatar": "http://plus.io/api/v2/users/1/avatar",
        "bg": "http://plus.io/storage/user-bg/000/000/000/01.png",
        "verified": null,
        "extra": {
            "user_id": 1,
            "likes_count": 0,
            "comments_count": 8,
            "followers_count": 0,
            "followings_count": 1,
            "updated_at": "2017-08-11 01:32:36",
            "feeds_count": 0,
            "questions_count": 5,
            "answers_count": 3,
            "checkin_count": 2,
            "last_checkin_count": 2
        }
    },
    {
        "id": 2,
        "name": "test1",
        "bio": null,
        "sex": 0,
        "location": "0",
        "created_at": "2017-06-12 07:38:55",
        "updated_at": "2017-06-12 07:38:55",
        "follwing": true,
        "follower": false,
        "avatar": null,
        "bg": null,
        "verified": null,
        "extra": {
            "user_id": 2,
            "likes_count": 0,
            "comments_count": 0,
            "followers_count": 0,
            "followings_count": 0,
            "updated_at": null,
            "feeds_count": 0,
            "questions_count": 0,
            "answers_count": 0,
            "checkin_count": 0,
            "last_checkin_count": 0
        }
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57

4.9 获取一个用户

  1. 获取指定用户:
GET /users/:user
  • 1

| 变量 | 描述 |
| user | 这个变量可以是「用户名」、「邮箱」、「手机号码」和「用户ID」 |

参数类型描述
followingInteger检查请求用户是否关注了指定的用户,传递要检查的用户 ID,默认为当前登录用户。
followerInteger检查请求用户是否被某个用户关注,传递要检查的用户 ID,默认为当前登录用户。
  1. 获取当前认证用户
GET /user
  • 1
Status: 200 OK
  • 1
{
    "id": 1,                           // 用户 ID
    "name": "创始人",                   // 用户名
    "phone": "18364758373",            // 用户手机号码,仅获取自己资料
    "email": "shiweidu@outlook.com",   // 用户邮箱,仅获取自己资料
    "bio": "我是大管理员",               // 用户描述
    "sex": 0,                          // 用户性别,1 男,2 女,0 未知
    "location": "成都市 四川省 中国",     // 用户地区
    "created_at": "2017-06-02 08:43:54",// 用户注册时间
    "updated_at": "2017-07-06 07:04:06",// 用户最后一次更新资料时间
    "avatar": {                        // 用户头像
        "vendor": "local",
        "url": "https://xxxxx",
        "mize": "image/png",
        "size": 8674535,
        "dimension": {
            "width": 240,
            "height": 240,
        }
    },
    "bg": null,                         // 同 `avatar` 字段
    "extra": {                          // 用户拓展信息
        "user_id": 1,
        "likes_count": 0,               // 喜欢数量
        "comments_count": 0,            // 评论数量
        "followers_count": 0,           // 关注者数量
        "followings_count": 1,          // 关注的人数量
        "updated_at": "2017-07-16 09:44:25",
        "feeds_count": 0                 // 动态数量
    },
    "wallet": {                          // 钱包信息,仅获取自己资料存在
        "id": 1,
        "user_id": 1,
        "balance": 90,                   // 钱包余额
        "created_at": "2017-06-02 08:43:54",
        "updated_at": "2017-07-05 08:29:49",
        "deleted_at": null
    },    
    "new_wallet": {                      // 钱包信息,仅获取自己资料存在
        "owner_id": 1,
        "balance": 1000,                 // 钱包余额
        "total_income": 100,             // 收入统计
        "total_expenses": 100,           // 支出统计
        "created_at": "2018-01-22 10:05:44",
        "updated_at": "2018-01-22 10:05:45"
    },
    "currency": {                        // 积分信息,仅获取自己资料存在
        "owner_id": 1,
        "type": 1,                       // 积分类型
        "sum": 9400,                     // 积分数量
        "created_at": "2018-01-17 06:57:18",
        "updated_at": "2018-01-18 06:57:24"
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

4.10 更新认证用户资料

PATCH /user
  • 1
字段类型描述
name字符串用户新的用户名。
bio字符串用户新的个人传记。
sex数字用户新的性别。
location字符串用户新的位置信息。
avatarFILE_STORAGE_NODE<string>可选,用户头像的 File node 值
bgFILE_STORAGE_NODE<string>可选,用户背景图片的 File node 值
Status: 204 No Content
  • 1
  1. 更新认证用户的手机号码和邮箱
PUT /user
  • 1
字段类型描述
phone字符串如果 email 不存在则必须,用户新的手机号码。
email字符串如果 phone 不存在则必须,用户新的邮箱地址。
verifiable_code字符串或者数字必须,验证码。
Status: 204 No Content
  • 1
  1. 更新认证用户密码
PUT /user/password
  • 1
名称类型描述
old_password字符串用户已设置密码时必须,用户密码。
password字符串必须,用户的新密码
password_confirmation字符串必须,用户的新密码,必须和 password 一致。
Status: 204 No Content
  • 1

4.11 获取所有用户

GET /users
  • 1
名称类型描述
limitinteger可选,请求获取的数据量,默认为 20 条,最低获取 1 条,最多获取 50 条。
orderstring可选,排序方式,默认 desc,可选 ascdesc
sinceinteger可选,上次请求的最后一条的 id ,用于获取这个用户之后的数据。
namestring可选用于检索包含 name 传递字符串用户名的用户;如果 fetch_byusername 那么这里就是完整的用户名,多个用户名使用 , 进行分割。
fetch_bystring可选,获取数据的方式,默认是 id 已常规方式进行获取,允许值:username 使用 name 字段进行按照用户名获取、id 使用 id 字段按照用户 ID 进行获取。
idinteger or string可选,获取一个或者多个指定的用户,如果获取多个请使用 , 将用户 ID进行字符串拼接。
Status: 200 OK
  • 1
[
    {
        "id": 1,
        "name": "创始人",
        "bio": "我是大管理员",
        "sex": 0,
        "location": "成都市 四川省 中国",
        "created_at": "2017-06-02 08:43:54",
        "updated_at": "2017-07-06 07:04:06",
        "following": false,
        "follower": false,
        "avatar": "http://plus.io/api/v2/users/1/avatar",
        "bg": null,
        "extra": {
            "user_id": 1,
            "likes_count": 0,
            "comments_count": 0,
            "followers_count": 0,
            "followings_count": 1,
            "updated_at": "2017-07-16 09:44:25",
            "feeds_count": 0
        }
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

4.12 用户找回密码

PUT /user/retrieve-password
  • 1
名称类型描述
verifiable_type枚举:mail 或者 sms必须,验证码发送模式。
verifiable_code字符串或者整数必须,用户收到的验证码。
email字符串如果 verifiable_type 值为 mail,那么这个字段为必须,用户邮箱。
phone字符串如果 verifiable_type 值为 sms。那么这个字段为必须,用户手机号码。
password字符串用户新密码。
Status: 204 No Content
  • 1

4.13 解除用户 Phone 或者 E-Mail 绑定

解除用户 Phone 绑定:

DELETE /api/v2/user/phone
  • 1

解除用户 E-Mail 绑定:

DELETE /api/v2/user/email
  • 1
名称类型描述
passwordString用户密码。
verifiable_codeInt 或者 String手机号码或者邮箱验证码。
Status: 204 No Content
  • 1

五、文件上传管理

5.1 获取文件 hash 信息

PS:通过 微信 API 文件读取接口读取文件 filePath

let hash = await new Promise((resolve, reject) => {
    uni.getFileInfo({
      filePath,
      success: (result) => {
        resolve(result.digest)
      }
    })
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

5.2 文件上传检查

PS:依赖上一步获取到的 hash

GET /files/uploaded/`hash`
  • 1

5.3 文件上传

POST /files
  • 1
名称类型描述
fileFile待上传的文件
Status: 201 Created
{
    "message": [
        "上传成功"
    ],
    "id": 1
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
let forms = new FormData()
forms.append('file',uni.getFileSystemManager().readFileSync(`filePath`))
				
await uni.request({
		url: 'http://ts.lagou.uieee.com/api/v2/files',
		method: "POST",
		forms,
		headers: {
			'Content-Type': 'multipart/form-data',
      'Accept': "application/json",
      'Authorization': "Bearer " + uni.getStorageSync("accessToken").data
		},
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

5.4 文件获取

GET /files/:file
  • 1

这里的 :file 虽然叫做文件,实际是系统中的 file_with 标识,例如上传返回的都是 file_with 标识。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/398522
推荐阅读
相关标签
  

闽ICP备14008679号