AIWA logo AIWA

API DOCS

API
文档

公开 JSON API,用于博客和作品集数据接入。下面说明支持的参数、返回格式以及作品集排序规则。

通用规则

JSON API 现在通过密钥保护,可用于外部项目、移动端和内部集成。

格式

JSON, UTF-8

鉴权

需要密钥

方法

GET, OPTIONS

CORS

已开启

请通过 `X-API-Key` 或 `Authorization: Bearer <key>` 传递密钥。

成功响应都会带有 `ok` 字段。

`lang` 支持 `ru`、`en`、`zh`。

`limit` 范围为 `1` 到 `100`。

`offset` 用于列表分页。

`OPTIONS` 返回 `204`,不支持的方法返回 `405`。

鉴权

没有有效密钥的 API `GET` 请求会返回 `401 Unauthorized`。`OPTIONS` 仍保持开放以支持 CORS 预检。

方式 1: X-API-Key

X-API-Key: <your-secret-key>

方式 2: Authorization Bearer

Authorization: Bearer <your-secret-key>

Blog API

返回博客列表,或通过 `slug` 返回单篇文章。

Endpoint

https://www.aiwa.company/api/v1/blog/

参数

字段 类型 必填 说明
lang string ru, en, zh. Defaults to ru.
slug string Return one post by slug.
limit integer Number of posts in list mode. Default 20, max 100.
offset integer List offset for pagination.

请求示例

curl -H "X-API-Key: <your-secret-key>" "https://www.aiwa.company/api/v1/blog/?lang=ru&limit=5"
curl -H "Authorization: Bearer <your-secret-key>" "https://www.aiwa.company/api/v1/blog/?lang=ru&slug=how-to-build-fast-websites"

响应

字段 类型 说明
ok boolean 成功标记。
resource string 资源类型。
lang string 返回使用的语言。
count integer 本次 `items` 中的元素数量。
items array 资源数组。

Portfolio API

返回作品集列表,或通过 `slug` 返回单个案例。

作品集始终按 `sort_order ASC` 返回,与公开作品集页面顺序一致。

Endpoint

https://www.aiwa.company/api/v1/portfolio/

参数

字段 类型 必填 说明
lang string ru, en, zh. Defaults to ru.
slug string Return one case by slug.
category string Return only cases from the specified category.
limit integer Number of cases in list mode. Default 20, max 100.
offset integer List offset for pagination.

请求示例

curl -H "X-API-Key: <your-secret-key>" "https://www.aiwa.company/api/v1/portfolio/?lang=ru&limit=6"
curl -H "X-API-Key: <your-secret-key>" "https://www.aiwa.company/api/v1/portfolio/?lang=ru&category=Web&limit=6"
curl -H "Authorization: Bearer <your-secret-key>" "https://www.aiwa.company/api/v1/portfolio/?lang=ru&slug=aiwa-corporate-website"

响应

字段 类型 说明
ok boolean 成功标记。
resource string 资源类型。
lang string 返回使用的语言。
count integer 本次 `items` 中的元素数量。
items array 资源数组。
total integer 过滤后、分页前的总数。
limit integer|null 当前 limit。按 slug 查询时为 `null`。
offset integer|null 当前 offset。按 slug 查询时为 `null`。
filters object 当前过滤条件。
order object 排序信息。

作品集对象主要字段

字段 类型 说明
id string 案例 ID。
slug string 案例 slug。
sort_order integer 排序位置,值越小越靠前。
category string 分类。
website_url string 项目网址。
cover_image_url string 封面图地址。
tech_stack string 技术栈。
title string 本地化标题。
summary string 简要描述。
content_html string HTML 内容。
date string 本地化日期。
seo_title string SEO title。
seo_description string SEO description。
seo_keywords string SEO keywords。

JSON

{
  "ok": true,
  "resource": "portfolio",
  "lang": "ru",
  "count": 2,
  "total": 14,
  "limit": 2,
  "offset": 0,
  "filters": {
    "slug": null,
    "category": "Web"
  },
  "order": {
    "field": "sort_order",
    "direction": "asc",
    "note": "Items are returned in the same order as the public portfolio page."
  },
  "items": [
    {
      "id": "17",
      "slug": "aiwa-corporate-website",
      "sort_order": 1,
      "category": "Web",
      "title": "AIWA Corporate Website"
    },
    {
      "id": "21",
      "slug": "studio-redesign",
      "sort_order": 2,
      "category": "Web",
      "title": "Studio Redesign"
    }
  ]
}

状态码

字段 说明
401 密钥缺失或无效。
200 成功返回 JSON。
204 `OPTIONS` 空响应。
405 方法不支持。