Typle API
アプリのAPI
API(Go)
OpenAPI
GitHub
アプリのAPI
API(Go)
OpenAPI
GitHub

Typle API

Typle のバックエンド(Go)が提供する API の仕様

アプリのAPIAPI(Go・/api/v1)

アプリのAPI(/api/*)

Web版と iPad・Mac・Android・Windows 版が使う本番のバックエンド。ログイン、ワークスペースの保存、練習記録、パックの共有、管理画面。

API(Go・/api/v1)

スクリプトや別のアプリから、GitHub のトークンでアカウントのデータを読み書きする手元専用の API。本番には載せていません。

OpenAPI

/api/workspace/records の本文・応答・エラーコードは OpenAPI 3.1 で定義し、Go とアプリの両方をテストで照合しています。

2つの API

Typle のバックエンドは Go(server/)で、性格の違う2つの API があります。どちらも server/internal/store・server/internal/workspace・server/internal/auth を共有し、保存データの検証の規則は同じです。

アプリのAPIAPI(Go)
パス/api/auth/*・/api/workspace・/api/workspace/records・/api/shares・/api/shared・/api/admin/*・/api/health/api/v1/*
使う人Typle 本体(Web版と iPad・Mac・Android・Windows 版)スクリプト・別のアプリ
動く場所本番は Vercel の Go の関数(api/index.go)。手元は server/cmd/typle-web手元の server/cmd/typle-api だけ(本番には載せない)
認証セッションの Cookie、またはアプリのトークンGitHub の Fine-grained の個人用アクセストークン
書き込みワークスペース全体の保存(revision で競合を検出)と、記録の追加・削除-writable で起動したときだけ。リスト・パック・端末・記録を1件ずつ

このサイトについて

このサイトは VuePress v2 で作っています。原稿はリポジトリの api-docs/src にあります。

cd api-docs
npm ci
npm run docs:dev    # http://localhost:8090 で確認
npm run docs:build  # api-docs/src/.vuepress/dist に書き出す
npm run docs:check  # ビルドしたページのリンクと見出しへのアンカーを検査する

公開先は Cloudflare Pages(プロジェクト typle-api-docs)です。main にマージされると、GitHub Actions の docs-deploy が、アプリの本番デプロイの後に同じコミットから公開します(リリースの手順)。手元から公開はしません。

API を変えたら、同じ PR でこのサイトの該当ページも直してください。

Typle