Задать вопрос
YekitKsv
@YekitKsv
Developer

Как обработать ошибочный ответ API на go?

Как грамотно обработать ошибочный ответ получаемый от API?
Например, при корректном запросе возвращается корректная json-модель, назовем её User, которая имеет структуру в го:
type User struct {
	Country     string `json:"country"`
	Login       string `json:"login"`
	DisplayName string `json:"display_name"`
	UID         string `json:"uid"`
}


При некорректном запросе возвращается json-модель Error, структура в го:
type Error struct {
	Message     string `json:"message"`
	Description string `json:"description"`
	Error       string `json:"error"`
}


Есть функция:
func (c *Client) GetUser(login string) (User,error) {
	// ..body
}

Которая должна вернуть структуру User, но что возвращать в случае ошибки. Думал в структуре Error реализовать интерфейс error и передавать уже непосредственно через error ошибочный ответ.
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
uvelichitel
@uvelichitel Куратор тега Go
habrahabr.ru/users/uvelichitel
Думал в структуре Error реализовать интерфейс error и передавать уже непосредственно через error ошибочный ответ.
Совершенно верно.
Так
func(e Error) Error() string{
    return e.Message
}

или так
type Error struct {
  Message     string `json:"message"`
  Description string `json:"description"`
  Error       string `json:"error"`
  error
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
func (c *Client) GetUser(login string) (*User,error) {
  
  // ...
  
  return nil, err
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы