社内に開発チームのある方へ

書くのはマーケ、組むのはエンジニア

マーケティングやサポートの人が管理画面で書き、エンジニアは型のついた API で組みます。マーケサイト、ブログ、ヘルプ、更新情報に使えます。

型がついてくる

スペースのスキーマから、TypeScript の型(/api/v1/schema/types.ts)、OpenAPI 3.1 の定義(/api/v1/schema/openapi.json)、GraphQL のスキーマを書き出せます。フィールドを足したら、型を書き出し直すだけです。

ほかの言語では、OpenAPI の定義から、その言語の道具でクライアントを作れます。

TypeScript
// 新しい順に 10 件。型は /api/v1/schema/types.ts から書き出したもの
import type { News } from "./hako-types";

const res = await fetch(
  "https://acme.hakocms.net/api/v1/content/news?order=-sys.publishedAt&limit=10",
  { headers: { Authorization: `Bearer ${process.env.HAKO_KEY}` } },
);
const { items } = (await res.json()) as { items: News[] };

管理画面でできることは、
すべてコマンドでも

hakocms-cli を使うと、管理画面でできる操作をすべてコマンドで行えます。スキーマのファイルを CI からスペースに反映したり、エントリーをまとめて書き換えたりできます。Linux、macOS、Windows 向けの 1 つの実行ファイルです。

CLI は管理画面と同じ Admin API を使い、ログインした人と同じ権限で動きます。行った操作は監査ログに残ります。複数の環境にログインしておき、切り替えて使うこともできます。

CLI のダウンロード

端末
hakocms-cli auth login --host https://<ホスト名>.hakocms.net

# リポジトリのスキーマのファイルを、差分を見てからスペースに反映する
hakocms-cli schema diff blog.hako.json --space blog
hakocms-cli schema apply blog.hako.json --space blog

# 下書きのエントリーを、まとめて公開する
hakocms-cli entries list -t posts --status draft --all \
    --jq '.[].id' |
  while read -r id; do
    hakocms-cli entries publish "$id" -t posts
  done

式で絞り込む

REST では、SQL の WHERE 句のような式で絞り込みます。GraphQL では、同じ演算子を入力の型で書きます。どちらも意味は同じです。

REST
GET /api/v1/content/news?where=category contains "press" and sys.publishedAt >= "2026-04-01"
GET /api/v1/content/products?where=price < 1000 and (stock > 0 or preorder = true)&order=price
GraphQL
query {
  newsCollection(
    where: { category: { contains: "press" } }
    order: [sys_publishedAt_DESC]
    limit: 10
  ) {
    total
    items { sys { id } title category }
  }
}

参照は、段数を決めてその場に展開します(REST の include=2)。返す項目は select で選べます。

公開したら、サイトが変わる

Webhook で再ビルド

公開や更新のたびに通知を送ります。Vercel や Netlify の再ビルドの形を選べ、続けて公開したときは 1 回にまとめます。自前の受け手には、署名(HMAC-SHA256)付きの本文を送ります。

下書きのプレビュー

プレビューの権限を付けた API キーと preview=true で、下書きを読めます。このキーはサイトのサーバーの中にだけ置きます。サイトのサーバーで、見に来た人とプレビューの指定を確かめ、見せてよいときだけこのキーで読むようにすると、下書きをその人に見せられます。

画像の変換

画像の URL に ?w=800&fm=avif のようなパラメーターを付けると、大きさを変え、WebP や AVIF にして返します。

書く人の権限を分ける

コンテンツタイプごとに「読む・書く・公開する」を分けたロールを作れます。API キーも、読めるコンテンツタイプ、書けるかどうか、下書きを読めるかを、キーごとに決められます。

日本語で探せる

日本語の全文検索が入っています(REST の q、GraphQL の q)。サイト内の検索のために、外部の検索サービスを足す必要はありません。

無料で始める

フリーのプランで試せます。カードは要りません。