У меня есть задача вставить полезную нагрузку JSON в таблицу.
(фиксированная) структура таблицы SQL определяется следующим образом:
$ echo "describe ut_invitation_api_data\G;" | mysql -h auroradb.dev.unee-t.com -P 3306 -u bugzilla --password=$(aws --profile uneet-dev ssm get-parameters --names MYSQL_PASSWORD --with-decryption --query Parameters[0].Value --output text) bugzilla | grep Field
mysql: [Warning] Using a password on the command line interface can be insecure.
Field: id
Field: mefe_invitation_id
Field: bzfe_invitor_user_id
Field: bz_user_id
Field: user_role_type_id
Field: is_occupant
Field: bz_case_id
Field: bz_unit_id
Field: invitation_type
Field: is_mefe_only_user
Field: user_more
Field: mefe_invitor_user_id
Field: processed_datetime
Field: script
Field: api_post_datetime
См. fields.txt для деталей, показывающих различные типы и могут ли они быть нулевыми или нет.
Итак, мой первый шаг - создать структуру и отобразить varchar в строку, любой тип int в int и даты во времени.Time.
Уже имена столбцов с подчеркиванием заставляют моего редактора Golang жаловаться.Далее идут теги JSON, и у нас есть что-то вроде:
type invitation struct {
id int `json:"id"`
mefe_invitation_id string `json:"mefe___invitation___id"`
bzfe_invitor_user_id int `json:"bzfe___invitor___user___id"`
bz_user_id int `json:"bz___user___id"`
user_role_type_id int `json:"user___role___type___id"`
is_occupant bool `json:"is___occupant"`
bz_case_id int `json:"bz___case___id"`
bz_unit_id int `json:"bz___unit___id"`
invitation_type string `json:"invitation___type"`
is_mefe_only_user bool `json:"is___mefe___only___user"`
user_more string `json:"user___more"`
mefe_invitor_user_id int `json:"mefe___invitor___user___id"`
processed_datetime time.Time `json:"processed___datetime"`
script string `json:"script"`
api_post_datetime time.Time `json:"api___post___datetime"`
}
Что выглядит очень неправильно.Есть ли лучший подход к созданию RESTful API для базы данных mysql с использованием Golang?т.е. обеспечить правильное отображение и правильные глаголы RESTful?