ドキュメントメニュー

公開 API

公開済みコンテンツを任意のフロントエンドから取得します。

公開 API は読み取り専用で、ETag によるキャッシュに対応しています。受け付けるメソッドは GET、HEAD、OPTIONS だけで、それ以外は 405 を返します。公開済みのコンテンツだけが返され、下書きは含まれません。

市場とロケール

  • 市場コードは vn、ph、id の 3 つです。
  • ロケールは vn が vi と en、ph が fil と en、id が id と en です。
  • ページの取得で locale を省略するか無効な値を指定すると、市場の既定ロケールが使われます。

ランディングコンテンツ

  • GET /api/v1/public/pages/{market}/{pageKey}?locale=:構造化ページフィールドを { fields } で返します。
  • GET /api/v1/public/translations/{market}/{locale}:UI 翻訳を { messages } で返します。
  • GET /api/v1/public/enablement/{market}:その市場で公開中のページとサービスを返します。
ts
const res = await fetch(
  "https://tixigen.com/api/v1/public/pages/vn/home?locale=en",
  { next: { revalidate: 60 } }
);
const { fields } = await res.json();
fields["home.hero.headline"];

記事

  • GET /api/v1/page-articles/{pageKey}:記事一覧
  • GET /api/v1/page-articles/{pageKey}/{slug}:記事詳細
  • GET /api/v1/page-articles/{pageKey}/search:キーワード検索
  • GET /api/v1/page-articles/{pageKey}/trending:人気の記事
  • GET /api/v1/page-articles/{pageKey}/categories、/tags、/authors:カテゴリ、タグ、著者

pageKey は、admin が作成した Headless ページのキーです。一覧は page(既定 1)、limit(既定 12、最大 50)、category、tag、author、q、sort(latest、oldest、updated、sort_order)で絞り込めます。レスポンスは { items, pagination } の形です。

bash
curl "https://tixigen.com/api/v1/page-articles/$PAGE_KEY?limit=6&sort=latest" \
  -H "x-api-key: $API_KEY"

# {
#   "items": [ { "slug": "...", "title": "...", "publishedAt": "..." } ],
#   "pagination": { "page": 1, "limit": 6, "total": 42, "totalPages": 7 }
# }
Headless ページに公開 API キーが設定されている場合は、x-api-key ヘッダーまたは Authorization: Bearer でキーを送る必要があります。キーがないと 401(invalid_api_key)になります。

キャッシュと条件付きリクエスト

  • JSON のレスポンスには ETag が付きます。If-None-Match で送ると、変更がなければ 304 が返ります。
  • Cache-Control は、一覧が s-maxage=60、詳細とページが s-maxage=300、フィードが s-maxage=600 で、いずれも stale-while-revalidate 付きです。
  • 公開直後は、キャッシュの更新が終わるまで古い内容が返ることがあります。

エラー

json
{
  "error": {
    "code": "invalid_market",
    "message": "Unknown market \"xx\""
  }
}
  • 400:invalid_market、invalid_page、invalid_locale、invalid_query
  • 401:invalid_api_key
  • 404:not_found
  • 405:method_not_allowed(Allow: GET, HEAD, OPTIONS)
  • 500:internal_error
API はサーバー側から呼び出すことをおすすめします。ブラウザからの呼び出しは許可されたオリジンからのみ可能で、API キーを公開せずに済みます。