1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Go】OpenAPI Generatorでコード生成時modelにCustom Struct Tagを出力する

Posted at

概要

Goには、OpenAPIで定義したyamlをコード出力するツールがあります。概要についてはOpenAPI GeneratorでGoのAPIサーバー/クライアントコードを自動生成するの記事で、解説されています。
出力するコードにはmodelのstructも含まれるのですが、例えばGinでバリデーションを使ってみるで紹介されているような、Custom Struct Tag(ginだとbinding)を、出力したいという場合もあると思います。
今回は、OpenAPIでCustom Struct Tagを出力したい場合どうするかというのをメモ書きします。

対応方法

goswaggerのCustom extensionsのドキュメントにある通り、yamlにx-go-custom-tagで、Custom Struct Tagを設定すれば出力してくれます。

設定サンプル

以下がyamlファイルに設定する、リクエストのmodelのサンプルです。

SampleRequest:
  title: SampleRequest
  type: object
  properties:
    name:
      type: string
      x-go-custom-tag: binding:"required"
    email:
      type: string
      x-go-custom-tag: binding:"required,email"
  required:
    - name
    - email

以下のように、コードでbindingのStruct Tagが出力されます。

type SampleRequest struct {
	Name string `json:"name" binding:"required"`
	Email string `json:"email" binding:"required,email"`
}

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?