Создать пакет Go/golang: клиента для API (http, JSON)
12 000 руб. за проект
Имеется API.
Имеется документация API.
API представляет собой 5 вызовов с использованием протокола http.
Форматы запроса-ответа:
form-encoded (для запроса), JSON для ответа.
Необходимо реализовать пакет для клиентского подключения к API.
Типичный пример из документации:
Request:
curl -i -X POST \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "X-Signature: 123" \
-d "action=check" \
-d "user_id=123456" \
'https://example.org/api/v1/{system_name}/check/{ref_id}/'
Response:
{"user_id":"123456","user_exists":true,"user_info":{"name":"John","surname":"Do","email":"example
@mail.com"},"status":true}
Все 5 запросов API сопоставимы по сложности с примером выше или даже проще.
Документация по API предоставляется.
Требуется:
Создать пакет для языка программирования Go/golang для работы с этим API.
Приблизительный стиль реализации публичной части пакета:
type ApiAdaptor struct {
...}
func NewApiAdaptor(lg *zap.Logger, params string) *ApiAdaptor{
...
}
func (adaptor *ApiAdaptor)Check(param RequestParams) (ResponseParams, Raw) {
...
}
Кроме интепретированных/распарсенных/распознанных данных ответов API (в примере выше это ResponseParams) следует также возвращать дополинтельно сырые данные, так как они пришли по HTTP в структуре вида.
type Raw struct {
Err error
RequestUrl,
RequestMethod string
RequestBody []byte
ResponseStatus int
ResponseBody []byte
}
Требуется подробное логирование. Использовать для этого пакет https://pkg.go.dev/go.uber.org/zap
в режиме не Sugar.
Пример использования
l:= lg.Named("FuncName")
l.Info("Demo", zap.String("StringParam", stringValue), zap.Int("IntParam", intValue))
l.Error("Problem", zap.Error(err))
Для взаимодействия по HTTP и разбора JSON использовать пакеты стандартной/встроенной/базовой библиотеки Go/golang.
Обязательный код тестирования (встроенный средства Go/golang, рекомендуется использовать в качестве вспомогательного пакет https://github.com/stretchr/testify)
Оплата по безопасной сделке. Срок выполнения работы - 2 дня.
Формальная документация с описанием этого API будет предоставлена до начала работ.
Параметры для подключения к API для тестирования (токен и т.п.) предоставляются.
Тестирование необходимо выполнять с нашего сервера Linux (дадим доступ по SSH), так как API доступно только с определенных IP-адресов.
Имеется документация API.
API представляет собой 5 вызовов с использованием протокола http.
Форматы запроса-ответа:
form-encoded (для запроса), JSON для ответа.
Необходимо реализовать пакет для клиентского подключения к API.
Типичный пример из документации:
Request:
curl -i -X POST \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "X-Signature: 123" \
-d "action=check" \
-d "user_id=123456" \
'https://example.org/api/v1/{system_name}/check/{ref_id}/'
Response:
{"user_id":"123456","user_exists":true,"user_info":{"name":"John","surname":"Do","email":"example
@mail.com"},"status":true}
Все 5 запросов API сопоставимы по сложности с примером выше или даже проще.
Документация по API предоставляется.
Требуется:
Создать пакет для языка программирования Go/golang для работы с этим API.
Приблизительный стиль реализации публичной части пакета:
type ApiAdaptor struct {
...}
func NewApiAdaptor(lg *zap.Logger, params string) *ApiAdaptor{
...
}
func (adaptor *ApiAdaptor)Check(param RequestParams) (ResponseParams, Raw) {
...
}
Кроме интепретированных/распарсенных/распознанных данных ответов API (в примере выше это ResponseParams) следует также возвращать дополинтельно сырые данные, так как они пришли по HTTP в структуре вида.
type Raw struct {
Err error
RequestUrl,
RequestMethod string
RequestBody []byte
ResponseStatus int
ResponseBody []byte
}
Требуется подробное логирование. Использовать для этого пакет https://pkg.go.dev/go.uber.org/zap
в режиме не Sugar.
Пример использования
l:= lg.Named("FuncName")
l.Info("Demo", zap.String("StringParam", stringValue), zap.Int("IntParam", intValue))
l.Error("Problem", zap.Error(err))
Для взаимодействия по HTTP и разбора JSON использовать пакеты стандартной/встроенной/базовой библиотеки Go/golang.
Обязательный код тестирования (встроенный средства Go/golang, рекомендуется использовать в качестве вспомогательного пакет https://github.com/stretchr/testify)
Оплата по безопасной сделке. Срок выполнения работы - 2 дня.
Формальная документация с описанием этого API будет предоставлена до начала работ.
Параметры для подключения к API для тестирования (токен и т.п.) предоставляются.
Тестирование необходимо выполнять с нашего сервера Linux (дадим доступ по SSH), так как API доступно только с определенных IP-адресов.
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.