Type Declaration

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
}
Type Declaration - 图1 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> ::