文章
文章物件是部落格的一篇文章。
共通錯誤(validation_failed、insufficient_scope、feature_unavailable、not_found)見 錯誤。
端點
| 方法與路徑 | 中文名 | 所需權限 |
|---|---|---|
POST /v1/blog/posts |
建立文章 | write_blog |
PATCH /v1/blog/posts/{id} |
更新文章 | write_blog |
GET /v1/blog/posts/{id} |
取得文章 | read_blog |
GET /v1/blog/posts |
列出文章 | read_blog |
POST /v1/blog/posts/{id}/publish |
發布或排程 | publish_blog |
POST /v1/blog/posts/{id}/unpublish |
下架文章 | publish_blog |
DELETE /v1/blog/posts/{id} |
刪除文章 | write_blog |
文章物件
| 欄位 | 型別 | 必填或可為 null | 用途 |
|---|---|---|---|
id |
整數 | 必填 | 識別碼(唯讀) |
title |
字串 | 必填 | 標題 |
summary |
字串 | 可為 null | 摘要 |
body_html |
字串 | 必填 | 內文(已過濾 HTML) |
cover_image |
物件 | 必填 | 封面圖 path 與 url(唯讀) |
status |
字串 | 必填 | draft、scheduled、published(唯讀) |
published_at |
字串 | 可為 null | 發布時間(唯讀) |
category_ids |
整數[] | 必填 | 分類識別碼 |
default_category_id |
整數 | 可為 null | 預設分類識別碼 |
view_count |
整數 | 必填 | 前台瀏覽次數(唯讀) |
public_url |
字串 | 可為 null | 前台網址(唯讀) |
created_at |
字串 | 必填 | 建立時間(唯讀) |
updated_at |
字串 | 必填 | 更新時間(唯讀) |
warnings |
字串[] | 可省略 | 寫入時移除的項目(唯讀) |
列表回應不含 body_html 與 warnings。
POST/v1/blog/posts
標頭 Idempotency-Key(字串,必填)重送沿用同一把鍵,見 慣例。內文:
title(字串,必填)標題,前後空白會去除body_html(字串,必填)內文,依白名單過濾,移除項目列在warningssummary、category_ids、default_category_id(可為 null)見文章物件表cover_image_url(字串,可為 null)封面圖網址,見 圖片
上限見 限制。回 201,status 為 draft。下表錯誤也適用更新。
| 錯誤碼 | 狀態碼 | 處理動作 | 可重試 |
|---|---|---|---|
title_charset_unsupported |
422 | 見 limits.title_allows_emoji |
否 |
cover_image_not_owned |
422 | 改填上傳回應的 url |
否 |
content_too_large |
413 | 縮短內文 | 否 |
duplicate_content |
409 | 沿用 details 的文章 |
否 |
idempotency_key_reused |
409 | 換一把新鍵 | 否 |
quota_exceeded |
429 | 見 quotas.posts_per_day |
否 |
PATCH/v1/blog/posts/{id}
路徑 id(整數,必填)識別碼。內文欄位與建立文章相同,差異如下:
- 每個欄位都可省略,至少送一個
title、body_html、cover_image_url不接受nullsummary與default_category_id清空傳nullcategory_ids整批覆蓋,清空傳null或空陣列
狀態與發布時間改用發布與下架端點。回 200 與文章物件,錯誤同建立文章。
GET/v1/blog/posts/{id}
路徑 id(整數,必填)識別碼。回文章物件,含 warnings。
GET/v1/blog/posts
查詢參數:
status(字串,可省略)篩選draft、scheduled或publishedcategory_id(整數,可省略)篩選這個分類的文章cursor(字串,可省略)上一頁的meta.next_cursor,原樣帶回limit(整數,可省略)每頁筆數,1 到 50,預設 20
無分類功能時省略 category_id。data 依建立時間新到舊,meta.next_cursor 為 null 即最後一頁。
POST/v1/blog/posts/{id}/publish
路徑 id(整數,必填)識別碼。內文 published_at(字串,可為 null)發布時間,ISO 8601 且含時區。
省略或給過去時間即立即發布,未來時間即排程。對已發布的文章給未來時間會退回 scheduled。只改時間時再呼叫一次。回 200 與文章物件。
POST/v1/blog/posts/{id}/unpublish
路徑 id(整數,必填)識別碼。沒有請求內文。
已發布或已排程的文章收回成草稿,published_at 一併清空。對草稿呼叫會原樣回傳,回 200。
DELETE/v1/blog/posts/{id}
路徑 id(整數,必填)識別碼。內文 confirmation_token(字串,第二次必填)第一次呼叫取得的確認碼。
刪除無法復原,分兩次送出。第一次不帶內文,回 409 與確認碼。details 另含 expires_in_seconds、post.title、post.status。標題交給人確認後,第二次帶確認碼送出,回 204。確認碼 5 分鐘內有效,綁定這篇文章與金鑰。已發布的文章先下架。
| 錯誤碼 | 狀態碼 | 處理動作 | 可重試 |
|---|---|---|---|
confirmation_required |
409 | 取出確認碼後送第二次 | 否 |
post_is_published |
409 | 先呼叫下架端點 | 否 |
post_has_product_links |
409 | 請人在後台解除關聯 | 否 |