Автоматизация на Go: запросы к API и обработка JSON

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

goapijson

👁 В Go можно эффективно автоматизировать задачи. Вот пример, как можно автоматизировать процесс получения и обработки данных из внешнего API. Предположим, что нам нужно получить данные с публичного API и сохранить нужные параметры.

📝 Автоматический запрос данных с API и обработка ответа:

package main

import (
  "encoding/json"
  "fmt"
  "io/ioutil"
  "log"
  "net/http"
)

type APIResponse struct {
  ID   int    `json:"id"`
  Name string `json:"name"`
}

func fetchData(url string) ([]APIResponse, error) {
  resp, err := http.Get(url)
  if err != nil {
    return nil, err
  }
  defer resp.Body.Close()

  body, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    return nil, err
  }

  var data []APIResponse
  if err := json.Unmarshal(body, &data); err != nil {
    return nil, err
  }
  return data, nil
}

func main() {
  url := "https://jsonplaceholder.typicode.com/users"
  data, err := fetchData(url)
  if err != nil {
    log.Fatalf("Error fetching data: %v", err)
  }
  for _, item := range data {
    fmt.Printf("ID: %d, Name: %s\n", item.ID, item.Name)
  }
}

📌 Как это работает:

  • Отправка HTTP GET запроса: в коде используется пакет net/http для отправки GET запроса на указанный URL. Полученный ответ от API сохраняется в переменную response.
  • Парсинг и вывод данных: ответ от API представлен в формате JSON, который парсится в структуру данных с помощью стандартной библиотеки json. Затем из структуры извлекаются значения полей ID и Name, которые выводятся на экран.
  • Обработка ошибок: в примере показана базовая обработка ошибок при вызове HTTP и при чтении/парсинге тела ответа.

❗️ Этот подход полезен для интеграции с внешними системами, сервисами и для создания сложных сценариев автоматизации, не требующих большой нагрузки на систему.

tags: #go #автоматизация #разработка

🧭 @recura_tech 🌐 VK 🌐 MAX

Скриншот кода на Go с примером fetchData и APIResponse, GET к jsonplaceholder, тёмная тема, логотип RECURA, подпись @recura_tech
Код примера: получение и парсинг JSON из публичного API

Читайте так же