Создать пакет на Go для работы с API http/json

20 000 руб. за проект
10 июня 2022, 14:59 • 9 откликов • 70 просмотров
Создать пакет на языке 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 года


Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
 
2 года назад
R50 3b52fbd1818ca4b8b1ec9e1a97c3df5b
Фрилансер
 
2 года назад