返回指定的出版物(Publication)。
同时为已登录用户保存浏览记录(如果未忽略content)。
Request
HTTP request
GET https://www.featapi.com/api/dimzou/publication/
Parameters
- Query parameters
Parameter name | Value | Description |
---|---|---|
Optional parameters | ||
bundle | string | 出版物对应的bundle id(与下面的id至少需要传一个) |
id | string | 出版物的id(与上面的id至少需要传一个) |
node | string | 出版物对应的章节id,没提交返回第一个章节 |
latest | boolean | 是否返回最新版的出版物。默认为false。只有单章节文章有效。 注意:此参数为true时返回的id、bundle_id、node_id可能跟输入的参数不同,重复调用可能会返回不同结果。 |
related | boolean | 为true返回同个分类或相关分类下的出版物数据,默认为false。 (已有单独的related接口,后续将移除此参数) |
count_words | array[string] | 默认为空。在返回结果里添加统计指定field的字数words_count 。 |
omit | comma separated field names | 忽略某些返回的field。 某些field的计算对性能有较大影响,如不需要可以忽略,能提高接口响应时间。 具体影响见下文。 如: covers,is_all_chapters_publish,comments_count,likes_count,current_user_has_liked,content 或nodes,covers,is_all_chapters_publish,comments_count,likes_count,current_user_has_liked 等。 |
支持Dimzou: Count Words的trans
、trans_to
、strip
参数,默认值与该接口相同。
如果同时传id、bundle_id(及node_id),如果三者没有指向同一个出版物会返回404。
授权
此请求需要具有以下所有范围的授权:
Scopes |
---|
有关更多信息,请参阅认证和授权页面。
访问限制出版物只有授权用户才可访问content属性。
Request body
无
Response
如果成功,则此方法在响应正文中返回Dimzou.publication资源。
在只传bundle_id时,根据以下条件决定返回的出版物:
- 单章节文章——返回唯一的出版物
- 多章节文章
- 封面章节已出版:返回封面章节
- 封面章节未出版:第一个已出版的章节
200 成功返回该出版物数据
{
"data": {
"id": 1498,
"node_id": 1663,
"bundle_id": 1574,
"title": "How to Make a Floral Wreath",
"summary": "<p><strong>How to Make a Floral Wreath</strong></p>",
"content": "<p><strong>How to Make a Floral Wreath</strong></p><figure><img src=\"/media/5215999252276/dimzou/reword/200/20200313_276AE25_%E4%B8%8B%E8%BD%BD.jpeg\"/></figure>",
"cover": "http://127.0.0.1:8000/media/5215999252276/dimzou/reword/300/20200313_FD3CF6A_blob",
"sort": 1,
"author": {
"uid": 5215999252276,
"avatar": "http://127.0.0.1:8000/media/5215999252276/avatar/5215999252276.jpg",
"expertise": "蹦极",
"firstname": "小红",
"lastname": "甘",
"username": "小红 甘",
"timezone": "Europe/Berlin",
"timezone_utc_offset": "+01:00",
"online": false,
"location": "Frankfurt am Main",
"avatars": {
"path": "http://127.0.0.1:8000/media/5215999252276/avatar/5215999252276.jpg",
"sizes": {
"sm": {
"width": 32,
"height": 32,
"path": "http://127.0.0.1:8000/media/sm/5215999252276/avatar/5215999252276_32x32.JPEG"
},
"md": {
"width": 64,
"height": 64,
"path": "http://127.0.0.1:8000/media/md/5215999252276/avatar/5215999252276_64x64.JPEG"
},
"lg": {
"width": 300,
"height": 300,
"path": "http://127.0.0.1:8000/media/lg/5215999252276/avatar/5215999252276_300x300.JPEG"
}
}
}
},
"translator": null,
"category": {
"id": 3,
"name": "Natural Science",
"parent_id": 2,
"kind": "category",
"slug": "natural-science",
"approved_at": "2019-07-17T06:29:34.683000Z",
"created_at": "2019-05-08T06:29:32.115000Z",
"deleted_at": null
},
"created_at": "2020-03-13T12:17:05.517152Z",
"updated_at": "2020-03-13T12:17:05.517601Z",
"nodes": [
{
"id": 1663,
"node_type": 0,
"text_title": "How to Make a Floral Wreath",
"text_summary": "How to Make a Floral Wreath",
"sort": 1,
"created_at": "2020-03-13T12:16:03.292739Z",
"updated_at": "2020-03-20T11:20:55.261957Z",
"status": 100,
"is_deleted": false,
"visibility": true,
"node_publish_time": "2020-03-13T12:17:05.517152Z",
"manuscript": null
} ],
"pub_type": 0,
"comments_count": 0,
"likes_count": 0,
"current_user_has_liked": false,
"template": "I",
"covers": {
"path": "http://127.0.0.1:8000/media/5215999252276/dimzou/reword/300/20200313_FD3CF6A_blob",
"sizes": {
"cover_sm": {
"width": 300,
"height": 300,
"path": "http://127.0.0.1:8000/media/cover_sm/5215999252276/dimzou/reword/300/20200313_FD3CF6A_blob_300x300.JPEG"
}
}
},
"bundle_is_multi_chapter": false,
"is_binding_publish": false,
"is_all_chapters_publish": true,
"comments": []
}
}
统计字数
GET …/publication/?bundle_id=1&count_words[]=content&count_words[]=title
目前仅支持
title
- 视为纯文本
summary
- 视为html
content
- 视为html
将返回:
{
"data": {
...,
"words_count": {
"title": 4,
"content": 1000
}
}
}
Response fields 对性能的影响
Fields | 影响 | 备注 |
---|---|---|
nodes | 20~30% | 减少2个sql及可能有若干跨应用请求 |
covers | 4% | 减少1个sql及1个异步task |
comments_count,likes_count,current_user_has_liked,comments | 8% | 减少一个跨应用请求 |
is_all_chapters_publish | 4% | 减少一个sql |
author,translator | 1~8% | 可能减少一个跨应用请求 |
content | 不定 | 减少一个sql,同时会取消对content的自动翻译和字数统计。根据content的大小,对性能的影响不同。 |
content较小,跨应用请求有缓存的情况下忽略上面所有的fields大约可以减少40%的计算时间。
按需设置omit字段可以明显提升响应速度。
403
用户未获得访问内容的权限
404 Not found
示例返回数据可参考 API Common – Resource Not Found