Cách lấy dữ liệu JSON từ API bằng Golang

Bài viết này hướng dẫn cách lấy dữ liệu JSON từ API sử dụng ngôn ngữ lập trình Golang, giúp bạn hiểu rõ hơn về cách tương tác với các dịch vụ web.

Trong bài viết này, chúng ta sẽ sử dụng gói net/http để gửi yêu cầu GET đến một API và xử lý dữ liệu JSON trả về. Đoạn mã sẽ minh họa cách thực hiện điều này một cách rõ ràng và chi tiết.

package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    // Địa chỉ API
    url := "https://api.example.com/data"

    // Gửi yêu cầu GET
    response, err := http.Get(url)
    if err != nil {
        fmt.Println("Lỗi khi gửi yêu cầu:", err)
        return
    }
    defer response.Body.Close()

    // Kiểm tra mã trạng thái
    if response.StatusCode == 200 {
        var data map[string]interface{}
        // Giải mã dữ liệu JSON
        if err := json.NewDecoder(response.Body).Decode(&data); err != nil {
            fmt.Println("Lỗi khi giải mã dữ liệu:", err)
            return
        }
        fmt.Println(data)
    } else {
        fmt.Printf("Lỗi: %d\n", response.StatusCode)
    }
}

Giải thích chi tiết từng dòng code

  1. package main: Khai báo package chính của chương trình.
  2. import (...): Nhập các gói cần thiết, bao gồm encoding/json để làm việc với JSON và net/http để gửi yêu cầu HTTP.
  3. url := "https://api.example.com/data": Đặt biến url với địa chỉ của API mà bạn muốn truy cập.
  4. response, err := http.Get(url): Gửi yêu cầu GET tới API và lưu trữ phản hồi vào biến response, đồng thời kiểm tra lỗi.
  5. defer response.Body.Close(): Đảm bảo rằng body của phản hồi sẽ được đóng khi hàm kết thúc.
  6. if response.StatusCode == 200: Kiểm tra xem yêu cầu có thành công không (mã trạng thái 200 cho biết thành công).
  7. var data map[string]interface{}: Khai báo biến data để lưu trữ dữ liệu JSON.
  8. if err := json.NewDecoder(response.Body).Decode(&data); err != nil: Giải mã dữ liệu JSON từ body của phản hồi vào biến data, đồng thời kiểm tra lỗi.
  9. fmt.Println(data): In dữ liệu ra màn hình.
  10. else: fmt.Printf("Lỗi: %d\n", response.StatusCode): Nếu có lỗi, in ra mã lỗi để kiểm tra.

Yêu cầu hệ thống

  • Phiên bản Golang: 1.12 trở lên

Cách cài đặt các thư viện để chạy được đoạn mã Golang trên

Bạn không cần cài đặt thư viện bên ngoài nào vì gói net/httpencoding/json là các gói chuẩn có sẵn trong Golang.

Lời khuyên

  • Đảm bảo bạn đã hiểu cách hoạt động của API mà bạn đang gọi.
  • Kiểm tra tài liệu của API để biết cách sử dụng và các tham số cần thiết.


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Cách chia chuỗi trong Golang bằng hàm SplitAfterN

Hướng dẫn cách sử dụng hàm `SplitAfterN` trong Golang để chia chuỗi dựa trên ký tự phân tách và giới hạn số phần tử được chia. Hàm này hữu ích khi cần chia chuỗi nhưng vẫn giữ nguyên ký tự phân tách.
Cách ghi nội dung vào file Excel bằng Golang

Hướng dẫn chi tiết cách ghi dữ liệu vào file Excel bằng ngôn ngữ lập trình Golang sử dụng thư viện excelize.
Cách truyền Authentication Header Token khi POST dữ liệu tới API bằng Golang

Hướng dẫn cách truyền Authentication Header Token khi gửi yêu cầu POST dữ liệu tới API bằng Golang. Bài viết này sẽ giúp bạn hiểu cách làm việc với HTTP request, thêm token vào Header để xác thực và gửi dữ liệu tới API.
Cách chuyển đổi chuỗi Markdown sang HTML bằng Golang

Hướng dẫn chi tiết cách chuyển đổi một chuỗi Markdown sang HTML trong Golang bằng cách sử dụng thư viện `blackfriday`.
Cách so sánh hai slice byte trong Golang

Bài viết này hướng dẫn cách so sánh hai slice byte trong Golang. Golang cung cấp các phương thức tích hợp và thư viện giúp việc so sánh hai slice byte trở nên dễ dàng và chính xác.
Cách tự động đăng nhập vào website sử dụng Selenium với Chrome trong Golang

Hướng dẫn cách sử dụng Selenium trong Golang để tự động đăng nhập vào một website bằng trình duyệt Chrome. Bài viết sẽ cung cấp mã code cụ thể và giải thích chi tiết từng bước.
Các chức năng thường dùng khi sử dụng Selenium Chrome trong Golang

Bài viết này tổng hợp các chức năng thường dùng khi làm việc với Selenium Chrome trong Golang, bao gồm cách cài đặt, tạo phiên làm việc, điều hướng trang web, và tương tác với các phần tử trên trang.
Tạo ứng dụng chat đơn giản sử dụng Socket.IO trong Golang

Hướng dẫn chi tiết từng bước để xây dựng ứng dụng chat đơn giản sử dụng Socket.IO trong Golang, giúp bạn hiểu cách thức hoạt động của giao tiếp thời gian thực trong các ứng dụng web.
Hướng dẫn đọc nội dung file Excel bằng Golang

Hướng dẫn chi tiết cách đọc nội dung từ file Excel (.xlsx, .xls) bằng Golang, sử dụng thư viện excelize với các bước cài đặt và ví dụ minh họa cụ thể.
Cách DELETE dữ liệu từ database MySQL bằng Golang

Hướng dẫn cách kết nối và xóa dữ liệu từ một bảng trong database MySQL bằng ngôn ngữ lập trình Golang.

Đã thêm vào giỏ hàng