Avatar ·

كيفية الحصول على استجابة JSON من طلب HTTP GET في Go

ترجمة النص من الروسية إلى العربية مع الحفاظ على جميع وسوم HTML ونصوص `/
` كما هي:

السلام عليكم! لقد بدأت للتو في تعلم Go وواجهت مشكلة لا أستطيع حلها منذ عدة ساعات. أحتاج إلى إجراء طلب GET إلى API خارجي يعيد JSON، ثم تحليل هذا الرد إلى بنية (struct).

إليك ما جربته:

package main

import (
    "fmt"
    "net/http"
)

func main() {
    resp, err := http.Get("https://api.example.com/data")
    if err != nil {
        fmt.Println("Error:", err)
    }
    defer resp.Body.Close()

    fmt.Println(resp)  // Что дальше?
}

المشكلة هي أن `resp` ليس JSON نفسه، بل هو كائن Response. لا أفهم كيفية استخراج البيانات منه إلى بنية. حاولت قراءة الوثائق، لكن هناك الكثير عن `io.Reader` و `json.Decoder`، وأصبت بالارتباك.

أسئلة محددة:

  1. كيف أقرأ محتوى الرد بشكل صحيح؟
  2. كيف أحول JSON إلى بنية Go؟
  3. هل يجب معالجة رمز حالة الرد؟
  4. كيف أتعامل مع الأخطاء إذا أعاد API شيئاً غير JSON؟

سأكون ممتناً لمثال مفصل مع شرح. أنا ك