Files
larablog/docs/api/openapi.yaml
T
ak 263b98b218 Initial baseline: LaraBlog core with plugin commerce surface.
Captures the current working tree after theme slots, ArticleAccess, and the payment / paid-content plugins so subsequent work has a reviewable git history.
2026-08-12 01:15:38 +08:00

84 lines
2.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
openapi: 3.0.3
info:
title: LaraBlog Public API
version: 1.0.0
description: |
面向小程序 / 第三方客户端的只读 JSON API(一期)。
Base path: `/api/v1`
servers:
- url: /api/v1
description: Relative to APP_URL
paths:
/meta:
get:
summary: 站点元信息
operationId: getMeta
responses:
'200':
description: OK
/articles:
get:
summary: 文章列表
operationId: listArticles
parameters:
- in: query
name: per_page
schema: { type: integer, minimum: 1, maximum: 50 }
- in: query
name: page
schema: { type: integer, minimum: 1 }
responses:
'200':
description: Paginated articles
/articles/{id}:
get:
summary: 文章详情(匿名;受限文仅试读)
description: |
匿名 API。免费文返回 `content` / `content_html`。
密码文与付费文不返回全文:`content` 为 null`content_html`/`teaser_html` 为试读或摘要,
并带 `access.status``need_password` / `need_purchase` 等)。
已购/管理员全文仅 Web 登录会话可用(本期)。
operationId: getArticle
parameters:
- in: path
name: id
required: true
schema: { type: integer }
responses:
'200': { description: OK }
'404': { description: Not found }
/categories:
get:
summary: 分类列表
operationId: listCategories
responses:
'200': { description: OK }
/categories/{id}/articles:
get:
summary: 分类下文章
operationId: listCategoryArticles
parameters:
- in: path
name: id
required: true
schema: { type: integer }
responses:
'200': { description: OK }
/tags:
get:
summary: 标签列表
operationId: listTags
responses:
'200': { description: OK }
/tags/{name}/articles:
get:
summary: 标签下文章
operationId: listTagArticles
parameters:
- in: path
name: name
required: true
schema: { type: string }
responses:
'200': { description: OK }