Publication: get

Publication: get

返回指定的出版物(Publication)。

同时为已登录用户保存浏览记录(如果未忽略content)。

Request

HTTP request

GET https://www.featapi.com/api/dimzou/publication/

Parameters

  • Query parameters
Parameter nameValueDescription
Optional parameters
bundlestring出版物对应的bundle id(与下面的id至少需要传一个)
idstring出版物的id(与上面的id至少需要传一个)
nodestring出版物对应的章节id,没提交返回第一个章节
latestboolean是否返回最新版的出版物。默认为false。只有单章节文章有效。
注意:此参数为true时返回的id、bundle_id、node_id可能跟输入的参数不同,重复调用可能会返回不同结果。
relatedboolean为true返回同个分类或相关分类下的出版物数据,默认为false。
(已有单独的related接口,后续将移除此参数)
count_wordsarray[string]默认为空。在返回结果里添加统计指定field的字数words_count
omitcomma separated field names忽略某些返回的field。
某些field的计算对性能有较大影响,如不需要可以忽略,能提高接口响应时间。
具体影响见下文
如:covers,is_all_chapters_publish,comments_count,likes_count,current_user_has_liked,contentnodes,covers,is_all_chapters_publish,comments_count,likes_count,current_user_has_liked等。

支持Dimzou: Count Wordstranstrans_tostrip参数,默认值与该接口相同。

如果同时传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影响备注
nodes20~30%减少2个sql及可能有若干跨应用请求
covers4%减少1个sql及1个异步task
comments_count,likes_count,current_user_has_liked,comments8%减少一个跨应用请求
is_all_chapters_publish4%减少一个sql
author,translator1~8%可能减少一个跨应用请求
content不定减少一个sql,同时会取消对content的自动翻译和字数统计。根据content的大小,对性能的影响不同。

content较小,跨应用请求有缓存的情况下忽略上面所有的fields大约可以减少40%的计算时间。

按需设置omit字段可以明显提升响应速度。

403

用户未获得访问内容的权限

404 Not found

示例返回数据可参考 API Common – Resource Not Found

发表评论

您的电子邮箱地址不会被公开。

您可以使用以下 HTML标签和属性:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Captcha Code