0Pricing
Go Academy · Pelajaran

Pembantu Respons dan Kode Status

c.JSON, c.AbortWithError, dan respons error

Pembantu Respons dan Kode Status adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

c.JSON

c.JSON(statusCode, obj) mengubah obj menjadi JSON dan menetapkan Content-Type ke application/json. Ini adalah metode respons yang paling umum.

c.JSON(http.StatusOK, gin.H{
    "id":   user.ID,
    "name": user.Name,
})

gin.H

gin.H adalah singkatan untuk map[string]any. Gunakan untuk objek JSON sementara tanpa mendefinisikan struct.

c.JSON(200, gin.H{"message": "created", "id": id})

Konstanta status HTTP

Gunakan konstanta http.Status*, bukan angka mentah, agar lebih jelas:

c.JSON(http.StatusCreated, gin.H{"id": id})
c.JSON(http.StatusBadRequest, gin.H{"error": "invalid input"})
c.JSON(http.StatusInternalServerError, gin.H{"error": "internal error"})

c.String dan c.Data

Kirim teks biasa dengan c.String atau byte sembarang dengan c.Data:

c.String(200, "Hello, %s!", name)
c.Data(200, "application/octet-stream", fileBytes)

c.File dan c.FileAttachment

Sajikan berkas dari disk — secara langsung atau sebagai unduhan:

c.File("./public/report.pdf")           // inline
c.FileAttachment("./report.pdf", "report.pdf") // download

c.Redirect

Kirim pengalihan HTTP (301 permanen, 302 sementara):

c.Redirect(http.StatusMovedPermanently, "/new-url")

c.AbortWithStatus

Hentikan pemrosesan rantai permintaan dan tulis respons kosong dengan kode status yang diberikan. Berbeda dari c.JSON, fungsi ini memanggil Abort untuk mencegah penangan berikutnya berjalan.

c.AbortWithStatus(http.StatusUnauthorized)

c.Error

Tambahkan error ke konteks tanpa menulis respons. Perangkat tengah dapat mengumpulkan error ini dan menulis respons error terpadu di bagian akhir.

c.Error(fmt.Errorf("database error: %w", err))

Header respons

Tetapkan header respons khusus sebelum memanggil c.JSON atau c.Data:

c.Header("X-Request-ID", requestID)
c.Header("Cache-Control", "max-age=3600")

Merender XML

Gin juga mendukung respons XML dan YAML:

c.XML(200, user) // requires xml struct tags
c.YAML(200, user)

Struct respons khusus

Definisikan pembungkus respons API standar agar bentuknya konsisten di semua titik akhir:

type APIResponse struct {
    Success bool   `json:"success"`
    Data    any    `json:"data,omitempty"`
    Error   string `json:"error,omitempty"`
}

Pemeriksaan Singkat

Apa perbedaan tindakan c.AbortWithStatus dari c.Status?

Ringkasan: Pembantu Respons

Poin utama:

  • c.JSON(statusCode, obj) adalah metode respons JSON utama
  • Gunakan konstanta http.Status* agar lebih jelas
  • c.AbortWithStatus menghentikan rantai penangan
  • Definisikan pembungkus APIResponse yang konsisten untuk semua titik akhir

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pembantu Respons dan Kode Status” gratis?

Ya — teks lengkap “Pembantu Respons dan Kode Status” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pembantu Respons dan Kode Status”?

c.JSON, c.AbortWithError, dan respons error Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Go Academy?

Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Pembantu Respons dan Kode Status” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Router Gin dan Grup Rute
  2. Pengikatan dan Validasi Permintaan
  3. Pembantu Respons dan Kode Status
  4. Middleware Gin: Autentikasi dan Logging
← Kembali ke Go Academy