opanapi 自動生成
code:go
1. 型定義(19-63行目)
// OpenAPIから自動生成された型
type User struct {
CreatedAt time.Time json:"created_at"
DeletedAt *time.Time json:"deleted_at" // null許可
DisplayName string json:"display_name"
Uid string json:"uid"
Ulid string json:"ulid"
UpdatedAt time.Time json:"updated_at"
}
type UserResponse struct {
User User json:"user"
}
type UpdateUser struct {
DisplayName string json:"display_name"
}
2. サーバーインターフェース(65-76行目)
type ServerInterface interface {
DeleteMe(w http.ResponseWriter, r *http.Request)
GetMe(w http.ResponseWriter, r *http.Request)
UpdateMe(w http.ResponseWriter, r *http.Request)
}
3. ルーティング機能(238-293行目)
// Chi routerベースのHTTPハンドラー生成
func Handler(si ServerInterface) http.Handler
func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handler
生成されたファイル (oapi_gen.go)
├── 型定義 (User, UserResponse等) ← データの形
├── ServerInterface ← 私が実装を作る必要があるの意味
├── Unimplemented ← 実装作るまでの仮の実装(とりあえず動くための実装)
├── ServerInterfaceWrapper ← 補助機能
├── エラー型定義 ← エラーの種類
└── ルーティング機能 ← URLと関数を繋ぐ
🔧 次のステップ
アダプター作成予定
// handler/adaptor/oapi_adaptor.go(次回作成)
type OapiAdaptor struct {
core *handler.Core
}
// 生成されたインターフェースを実装
func (a *OapiAdaptor) GetMe(w http.ResponseWriter, r *http.Request) {
// 既存userUsecaseを呼び出し
}
#Wrapperが自動でやってくれること