базовый ответ от API
type BaseResponse struct {
Success bool json:"success"
Message string json:"message"
Result []interface{} json:"result"
}
В встравиваю её в структуры описывающие ответы от конкретных методов и переопределяю "Result"
Зочу написать метод обрабатывающий все ответы от данного API.
Как я понимаю единственный способ передать все эти объекты в один метод, это создать для них общий интерфейс. Но интерфейс описывает поведение. В данном случаи мне достаточно гарантировать что переданная структура имеет поля "Success" и "Message".
Придётся создавать интерфейс и описывать в нём методы GetSuccess и GetMessage? Или есть другой путь?
https://github.com/zelenin/grabot/blob/master/client/client.go#L57 я делаю вот так: паршу общие поля в ApiResponse, специфичные в Result RawMessage, а в каждом конкретном методе Result допаршиваю в конретный тип https://github.com/zelenin/grabot/blob/master/client/method.go#L20
Обсуждают сегодня