Go(バックエンド)とNext.js(フロントエンド)構成で個人開発を行う著者が、「同じAPIの型をBackendとFrontendで2回書いている」という課題を解消した手法を紹介しています。従来は両者で同じAPIの型情報を別々に手書きしており、同期漏れが発生していたとのことです。
対策として、OpenAPI定義ファイル(backend/api/openapi.yaml)を単一の情報源とし、oapi-codegen(v2.8.0)でGo型を、openapi-typescriptでTypeScript型をそれぞれ自動生成する仕組みを構築しました。生成されたGoの型はbackend/api/generated/models.gen.goに、TypeScriptの型はfrontend/lib/api/generated/schema.d.tsに出力されます。「BackendとFrontendの型を手作業で同期する必要がなくなりました」と成果を述べています。
出典が伝えている要点
- 著者はGo(バックエンド)とNext.js(フロントエンド)を使った個人開発でAPI開発を行っている
- 従来、BackendとFrontendで同じAPIの型情報をそれぞれ別々に手書きしていた
- 著者はOpenAPI定義ファイルを単一の情報源として型を自動生成する手法を導入した
- 型生成にはoapi-codegen(バージョンv2.8.0)を使用してGo型を生成している
- 型生成にはopenapi-typescriptを使用してTypeScript型を生成している
- OpenAPI定義ファイルはbackend/api/openapi.yamlに配置されている
- oapi-codegenの設定ファイルはbackend/api/oapi-codegen.yamlに配置されている
- 生成されたGoの型はbackend/api/generated/models.gen.goに出力される
- 生成されたTypeScriptの型はfrontend/lib/api/generated/schema.d.tsに出力される
- 記事の公開日は2026年9月10日である
原文より
同じAPIの型をBackendとFrontendで2回書いている
BackendとFrontendの型を手作業で同期する必要がなくなりました
出典: zenn.dev