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") // downloadc.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
- Router Gin dan Grup Rute
- Pengikatan dan Validasi Permintaan
- Pembantu Respons dan Kode Status
- Middleware Gin: Autentikasi dan Logging