У меня есть проект Go, представляющий API REST CRUD, для коллекции Mongo.Я использую go-swagger для генерации спецификации swagger.Однако у меня возникают проблемы с получением ответа JSON, который выглядит так, как я хочу, не нарушая генератор спецификаций go-swagger.
Я пытаюсь использовать go-swagger для генерации спецификации swagger из аннотаций на ходукод.Я хотел бы посмотреть, смогу ли я сделать ответ просто JSON Array of Users, как показано ниже.
Есть ли способ настроить аннотацию json в структуре User для получения желаемого результата?
[
{"id": "5d8e9aaca00ef6123c989f69", "user_name": "zbeeblebrox"},
{"id": "5d8e9ab1a00ef6123c989f6a", "user_name": "another_user"}
]
Ниже приводится то, что я получаю, по понятным причинам, объект JSON, содержащий ключ«data», со значением массива пользовательских объектов.
Я пытался переопределить структуру ответа swagger, чтобы он был псевдонимом типа [] * User, который создает правильное тело ответа, но не работает генератор go swagger.
{
"data": [
{"id": "5d8e9aaca00ef6123c989f69", "user_name": "zbeeblebrox"},
{"id": "5d8e9ab1a00ef6123c989f6a", "user_name": "another_user"}
]
}
Вот некоторый код.
// swagger:model
type User struct {
Id *primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"`
UserName string `json:"user_name" bson:"user_name"`
}
// HTTP status code 200 and an array of repository models in data
//swagger:response usersResp
type swaggUsersResp struct {
// in:body
Data []*User `json:"data"`
}
Я также попытался сделать это как псевдоним, который обеспечивает желаемый ответ JSON, но нарушает генерацию кода Go-Swagger.Я подозреваю, что это потому, что аннотация swagger: response должна быть в структуре, а не в псевдониме.
// swagger:response usersResp
type swaggUsersResp = []*User