-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Предлагаю добавить валидацию передаваемых в функции, принимающие interface{}, значений для упрощения поиска ошибок при описании API.
Пример кода, в котором было бы очень полезно:
type SendDraft struct {
draft.Endpoint
}
type SendParams struct {
Phone string `comment:"Номер телефона"`
}
type SendResponse struct {
Token string `json:"token" comment:"Токен"`
}
func (a *SendDraft) InitEndpointScheme(s *draft.Scheme) {
s.Project("auth")
s.Name("Отправка SMS-сообщения с кодом для верификации номера телефона")
s.URL("/api/v1/sms/send")
s.Method(draft.Method.POST)
s.Access(draft.Access.All)
s.Params(SendParams{
Phone: "70000000000",
})
s.Case(draft.Status.OK, "SMS-сообщение успешно отправлено", func() {
s.Body(func() SendResponse {
token, _ := utils.GenerateSmsToken()
return SendResponse{
Token: token,
}
})
})
}
В данном случае потерян вызов замыкания в s.Body, что приводит к ошибке
{"error":"json: unsupported type: func() sms.SendResponse"}
которую, однако, невозможно обнаружить до вызова /draft:scheme/
Версия библиотеки: v1.0.0-alpha.8
Metadata
Metadata
Assignees
Labels
No labels