makeApiRequest.go
unknown
golang
2 years ago
2.9 kB
7
Indexable
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"net/url"
)
// Функция для выполнения API запросов
func makeApiRequest(urlStr string, data url.Values) (map[string]interface{}, error) {
// Создание HTTP клиента
client := http.Client{}
// Создание POST запроса с данными в формате x-www-form-urlencoded
req, err := http.NewRequest("POST", urlStr, bytes.NewBufferString(data.Encode()))
if err != nil {
return nil, err
}
// Установка заголовка Content-Type
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
// Выполнение запроса
resp, err := client.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
// Чтение тела ответа
respBody, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
// Обработка успешного ответа
if resp.StatusCode == http.StatusOK {
var responseData map[string]interface{}
err := json.Unmarshal(respBody, &responseData)
if err != nil {
return nil, err
}
return responseData, nil
}
// Обработка ошибки HTTP запроса
return nil, fmt.Errorf("HTTP Error: %s", resp.Status)
}
func main() {
// Авторизация и запрос товаров с "Al-Style"
alStyleAccessToken := "ВАШ_ACCESS_TOKEN_AL_STYLE"
alStyleProductsURL := "https://api.al-style.kz/api/elements"
alStyleProductsData := url.Values{
"access-token": {alStyleAccessToken},
// Дополнительные параметры запроса "Al-Style", если необходимо
}
// Выполнение запроса к "Al-Style"
alStyleProductsResponse, err := makeApiRequest(alStyleProductsURL, alStyleProductsData)
if err != nil {
fmt.Println("Ошибка получения данных с Al-Style:", err)
return
}
// Обработка данных "Al-Style"
fmt.Println("Данные с Al-Style:", alStyleProductsResponse)
// Авторизация и импорт товаров в "Kaspi"
kaspiAccessToken := "ВАШ_ACCESS_TOKEN_KASPI"
kaspiImportURL := "https://kaspi.kz/api/v2/products/import"
kaspiImportData := url.Values{
"access_token": {kaspiAccessToken},
// Дополнительные параметры импорта "Kaspi", если необходимо
}
// Выполнение запроса на импорт в "Kaspi"
kaspiImportResponse, err := makeApiRequest(kaspiImportURL, kaspiImportData)
if err != nil {
fmt.Println("Ошибка импорта в Kaspi:", err)
return
}
// Обработка данных импорта в "Kaspi"
fmt.Println("Ответ от Kaspi:", kaspiImportResponse)
}
Editor is loading...