Buat API RESTful dengan Kerangka Gin
Diterbitkan: 2022-09-02Apakah Anda ingin membuat REST API dengan bantuan kerangka kerja Gin? Maka, Anda harus membaca blog ini secara menyeluruh. Melalui langkah-langkah sederhana, Anda akan belajar membuat API dasar, setelah itu Anda dapat melakukan proyek kompleks lainnya. Dan ya, Anda dapat mengerjakannya sendiri tanpa menggunakan layanan pengembangan Golang . Tapi, sebelum kita mulai, kenali dulu aspek teoritis dari kerangka kerja Gin.
- Tugas Pertama yang Harus Diselesaikan
- Anda perlu membuat direktori terlebih dahulu di go-workspace Anda. Anda akan menggunakan Command Prompt jika Anda menggunakan komputer Windows. Gunakan Terminal jika Anda menggunakan macOS atau Linux sebagai sistem operasi Anda.
- Saya akan menggunakan Command Prompt dalam skenario ini.
cd go-workspace
pekerjaan mkdir
pekerjaan cd
kode.
Saat kita mengetik code ., kita bisa melihat VS Code diluncurkan. Dalam kasus Anda, itu mungkin IDE atau editor yang berbeda.
- Memulai dengan Kode VS
- Hal pertama yang akan kita lakukan adalah membuat file main.go. Setelah ini, kita harus mengunduh kerangka kerja gin untuk membuat REST API.
- Kita sekarang harus membuat file go.mod. Kami mengetik:
go mod init golang.com/job
- Setelah pembuatan file go.mod, kita akan mengetik:
buka github.com/gin-gonic/gin
Ini akan menyebabkan file go.sum dibuat serta semua paket yang diperlukan terkait dengan kerangka kerja gin untuk diunduh.
- Mari Memulai dengan API Sederhana
- Kami hanya menuliskan kode
paket utama
impor (
“fmt”
“bersih/http”
“github.com/gin-gonic/gin”
)
fungsi utama()
{s :=gin.Default()
s.GET (“”, func (c *gin.Context){
c.String(http.StatusOK, "Apa peran pekerjaan?")
})
s.Run (“localhost: 8000”)
}
- Seperti yang Anda lihat, kami telah mengimpor setiap paket yang dibutuhkan aplikasi. Kami kemudian melanjutkan langsung ke fungsi utama. Apa yang kami lakukan adalah membangun modul default middleware recovery atau logger untuk Gin.
- Pengaturan default termasuk dalam variabel “s.” Dan kami akan menggunakan variabel ini untuk membantu pengembangan GET API. Argumen pertama yang saya berikan dalam contoh ini adalah URL API.
- URL dasar yang ditentukan oleh w.Run(“localhost:8000”) akan digunakan untuk menghosting API di localhost:8000. Selanjutnya, argumen pertama sebenarnya menunjukkan rute relatif API.
- Fungsi handler func (c *gin.Context) mengacu pada urutan fungsi yang dapat Anda berikan.
- Pointer ke variabel *gin.Context berfungsi sebagai argumen fungsi. Oleh karena itu, "c" dalam contoh ini berarti konteks.
- Konteks harus mengembalikan nilai yang berupa c.String atau c.JSON. Di sini, ada dua kriteria dalam operasi. Status ditunjukkan oleh argumen pertama, integer langsung (http.StatusOK). Kami dapat menggunakan ini karena kami mengimpor paket net/http.
- Saya hanya mengirim string sampel setelah ini. Ini adalah "Apa peran pekerjaan?"
- Ayo Jalankan Program Diatas
Untuk menjalankan program, kita harus mengetik go run main.go.

- Seperti yang Anda lihat, ada permintaan GET pada URL kosong. Itu juga dilengkapi dengan fungsi yang dapat disesuaikan. Selain itu, operasi mode pelepasan mesin terlihat. Ada satu titik akhir aktif di localhost 8000.
- Di browser web, kita dapat mengetik localhost:8000 untuk melihat:
- Sementara itu, Anda akan melihat cuplikan berikut di Kode VS

Apa artinya ini? Nah, kerangka kerja gin memainkan peran besar di sini dalam memantau waktu respons kode yang dijalankan.
- Berkonsentrasi pada GET API di mana Parameter Passing Ditangani oleh URL
Kode berikut mengasumsikan bahwa API akan memberi Anda nilai, idealnya string, sebagai respons terhadap URL.
s.GET(“/:get”, func (c *gin.Context){
var val = c.Param(“getr”)
c.JSON(http.StatusOK, gin.H{

“data tanggapan”:val,
})
})
//bagian ke-2
- Kami dapat memberikan setiap nama variabel ke dalam permintaan GET dengan memisahkannya dengan titik dua. Semua yang dimasukkan setelah URL dasar akan dianggap sebagai "dapatkan".
- Untuk menentukan nilai “get”, kita harus mendefinisikan konteks Param dan nama variabel yang telah kita sebutkan. Val akan menerima 'get' dari Gin dan diberitahu tentang hasilnya.
- Selanjutnya, kita melihat bahwa saya mentransfer JSON yang berisi nilai.
Apakah Anda mengerjakan sesuatu yang kompleks? Maka itu akan menjadi ide terbaik untuk memanfaatkan layanan pengembangan Golang jika Anda menemukan masalah dan tidak dapat memperbaikinya.
- Ayo Jalankan Program Diatas
- Sekali lagi, kita harus menjalankan program dengan mengetikkan go run main.go.
Jika Anda melihat pesan 'tcp 127.0.0.1: 8000: bind:Hanya satu penggunaan setiap alamat soket (protokol/alamat jaringan/port) biasanya diizinkan.', maka Anda harus melakukan operasi di Command Prompt.
nestat -ano | findstr :8000
Periksa nilai MENDENGARKAN (misalnya 7932), maka Anda harus mengetik
taskkill / pid 7932 /F
Ini akan menyebabkan penghentian proses pid.
- Di browser kami melakukan hal berikut:

Alasan kami harus memasukkan string setelah menyatakan localhost:8000 adalah karena API mengharapkan string dari URL.
- Mencoba POST API
- Kami akan mencoba menghubungkan ke POST API di sini. Selanjutnya, kami menyadari bahwa data akan ada di dalam tubuh. Ini adalah saat struct akan berguna.
- Apakah Anda ingat bagian ini?
paket utama
impor (
“fmt”
“bersih/http”
“github.com/gin-gonic/gin”
)
- Setelah ini, kami akan membuat struct yang memiliki dua bidang data, seperti yang Anda lihat:
ketik Struktur pekerjaan {
Gaji int `json:”gaji” mengikat: “wajib”`
String nama `json:”nama” mengikat: “wajib”`
}
- Json:"gaji" dan json:"nama" mewakili kunci yang berbeda. Anda juga dapat melihat bahwa pengikatan telah ditentukan sebagai "wajib".
- Mengikuti bagian //2, kita akan mengetik:
s.POST(“/highlight”, func (c *gin.Context){
pekerjaan data var
jika err := c.ShouldBind(&data); salah != nihil{
fmt.Println (err)
c.JSON(http.StatusBadRequest, gin.H{
“kesalahan”: fmt.Sprintf(“%v”, err),
})
} kalau tidak{
c.JSON(http.StatusOK, gin.H{
“data” : data,
})
}
})
- Mari kita lihat blok kode ini. Dalam s.POST, kita akan membuat objek untuk Job. Konteks "c" kemudian harus dilampirkan ke model data setelah itu. Jika c.ShouldBind(&data) melontarkan kesalahan, itu akan memperingatkan API tentang masalah tersebut.
- Saya membuat permintaan buruk yang menunjukkan kesalahan yang diamati di “error”:fmt.Sprintf(“%v”, err) di c.JSON(http.StatusBadRequest).
- Jika tidak ada masalah, kunci "data" akan digunakan untuk mengirimkan data kembali ke respons API.
- Ayo Jalankan Blok Kode Terakhir
- Sekarang mari kita periksa tahap akhir program. Kita harus mengetik go run main.go untuk melakukan ini. Selain itu, saya akan menggunakan Postman untuk menunjukkan cara kerja API dan cara kerja kode. Versi desktop hanya perlu diinstal.
- Anda dapat melihat bahwa saya memiliki dua bidang data di badan jika Anda melihat tangkapan layar di bawah ini. Raw dan JSON harus menjadi pilihan untuk Tubuh.

- Saat kita mengklik 'Kirim', kita akan melihat hasil berikut:
{
“data”: {
“gaji”: 23000,
"nama": "Robert Hall"
}
}
Apakah Anda dapat memahami program tersebut? Ya? Lalu, bagus. Dalam kasus terakhir, kita bisa melihat tiga API berjalan, yang tidak disebutkan di URL, yang mengharapkan string dan yang terakhir yang mengharapkan nilai di badan. Semoga, Anda dapat menangani beberapa tugas REST API yang menantang sekarang.