Skip to main content

Type Declaration

Overview

The API type declaration is very similar to the Golang type statement, but there are some nuances and we turn to the API type statement.

Type Declaration

In the API description, the type declaration needs to satisfy the following rule:

  1. Type declaration must start with type
  2. No need to declare structurekeywords
  3. Nested Structural Declarations are not supported
  4. Alias not supported

Sample


type StructureExample {
// Basic data type example
BaseInt int `json:"base_int"`
BaseBool bool `json:"base_bool"`
BaseString string `json:"base_string"`
BaseByte byte `json:"base_byte"`
BaseFloat32 float32 `json:"base_float32"`
BaseFloat64 float64 `json:"base_float64"`
// slice example
BaseIntSlice []int `json:"base_int_slice"`
BaseBoolSlice []bool `json:"base_bool_slice"`
BaseStringSlice []string `json:"base_string_slice"`
BaseByteSlice []byte `json:"base_byte_slice"`
BaseFloat32Slice []float32 `json:"base_float32_slice"`
BaseFloat64Slice []float64 `json:"base_float64_slice"`
// map example
BaseMapIntString map[int]string `json:"base_map_int_string"`
BaseMapStringInt map[string]int `json:"base_map_string_int"`
BaseMapStringStruct map[string]*StructureExample `json:"base_map_string_struct"`
BaseMapStringIntArray map[string][]int `json:"base_map_string_int_array"`
// anonymous example
*Base
// pointer example
Base4 *Base `json:"base4"`

// new features ( goctl >= 1.5.1 version support )
// tag ignore example
TagOmit string
}
tip

New API features are referenced New API Resolver Us

We don't support generic, weak types, e.g. any type

You can participate in the discussion discussion to share your views https://github.com/zeroicro/go-zero/discussions/3121 ::