はじめに
最近Goしている。
RESTで遊んでいる。
OpenAPIで自動生成でやる。
書いてられない......
さて、どうしよう......
解決案
ざっくり案だけど、JavaのSpringdocみたいに自動で仕様書書くのはどうだろう。
Goだと割と楽にコード解析ができる。
そこで、go自体でIDLっぽく、インタフェースを書いて、自動生成する。
package idl
// 適当に構造体を宣言→componentsに入れる。
type NewPet struct {
Name string
Tag string `idl:"制約条件"`
}
type Pet interface {
// (GET /pets)→pathとmethodに使う。
Find(params FindPetsParams) Pet
// -> paramsクエリの情報。Pet 200の応答。
}
こんな感じで、定義書いておいて、go:generateでキックして、OpenAPI spec&コード生成できるといいんかなと。