Создать пакет на Go для работы с API http/json
20 000 руб. за проект
Создать пакет на языке Go/Golang для работы с API
Документация по API имеется.
Требуется реализовать 3 вызова из этого API (не все что описано в документации)
Обратите внимание, документация приведена для языка PHP,
примеры в документации приведены на языке PHP.
Необходимо реализовать
Все нужные структуры данных для передачи параметров и получения результатов,
Подпись запроса приватным ключом.
Отправку запросов по http, получение ответов,
Обработку (парзинг) ответов,
Формат передаваемых и принимаемых данных - JSON
Дополнительные требования к обработке параметров - необходимо в дополнение к распарзенному ответу возвращать полную информацию о собственно выполненном http-запросе
Пример
func (adaptor *Adaptor)FuncName(params RequestParamType) (ResponseParamType, RawResponse) {
}
Здесь RequestParamType, ResponseParamType - это отправляемые и получаемые по http данные.
А RawResponse это данные в сыром (не распарзенном) виде
type RawResponse struct {
Err error
Sent bool // установить в false если возврат из функции произошел ДО выполнения http-запроса (например, не удалось подготовить параметры), установить в true если возврат из функции произошел после http-вызова, независимо от того была ошибка или нет
Request struct {
Url string
Body []byte
Method string // POST, GET
}
Response struct {
StatusCode int
Body []byte
}
}
Использовать страндартные встроенные в Go библиотеки для работы с http, json
Использовать библиотеку логирования
zap package - go.uber.org/zap - Go Packages
логировать НЕ в Sugger
Пример:
type Adaptor struct {
log *zap.Logger
}
func (adaptor *Adaptor)FunctionName(requestParam RequestParamType) (ResponseParamType, RawResponse) {
l:= adaptor.log.Named("FunctionName")
l = l.With(zap.Object("requestParam", requestParam))
....
if err != nil {
l.Error("Can not parse response", zap.Error(err))
}
}
Реальные тесты на боевом сервере проводить не нужно
Сроки завершения работ
к вечеру понедельника 13 июня 2022 года
Документация по API имеется.
Требуется реализовать 3 вызова из этого API (не все что описано в документации)
Обратите внимание, документация приведена для языка PHP,
примеры в документации приведены на языке PHP.
Необходимо реализовать
Все нужные структуры данных для передачи параметров и получения результатов,
Подпись запроса приватным ключом.
Отправку запросов по http, получение ответов,
Обработку (парзинг) ответов,
Формат передаваемых и принимаемых данных - JSON
Дополнительные требования к обработке параметров - необходимо в дополнение к распарзенному ответу возвращать полную информацию о собственно выполненном http-запросе
Пример
func (adaptor *Adaptor)FuncName(params RequestParamType) (ResponseParamType, RawResponse) {
}
Здесь RequestParamType, ResponseParamType - это отправляемые и получаемые по http данные.
А RawResponse это данные в сыром (не распарзенном) виде
type RawResponse struct {
Err error
Sent bool // установить в false если возврат из функции произошел ДО выполнения http-запроса (например, не удалось подготовить параметры), установить в true если возврат из функции произошел после http-вызова, независимо от того была ошибка или нет
Request struct {
Url string
Body []byte
Method string // POST, GET
}
Response struct {
StatusCode int
Body []byte
}
}
Использовать страндартные встроенные в Go библиотеки для работы с http, json
Использовать библиотеку логирования
zap package - go.uber.org/zap - Go Packages
логировать НЕ в Sugger
Пример:
type Adaptor struct {
log *zap.Logger
}
func (adaptor *Adaptor)FunctionName(requestParam RequestParamType) (ResponseParamType, RawResponse) {
l:= adaptor.log.Named("FunctionName")
l = l.With(zap.Object("requestParam", requestParam))
....
if err != nil {
l.Error("Can not parse response", zap.Error(err))
}
}
Реальные тесты на боевом сервере проводить не нужно
Сроки завершения работ
к вечеру понедельника 13 июня 2022 года
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.