Hello Kawan - kawan sekalian, Kali ini saya akan membuat Tulisan tentang Golang Rest API menggunakan Framerowk GIN.
Kenapa Saya Menulis ini karena dapet tantangan dari Mas Yuki untuk membuat presentasi tentang golang, nah saya coba deh untuk menulis nya hehehehe....
mungkin gak usah di jelaskan ya golang itu apa karena bisa di lihat di LINK_INI yang telah di tulis oleh mas yuki sebelumnya sudah jelas dan gamblang tentang go.
Lalu Apa itu GIN adalah salah satu framework yang di buat dengan bahasa go . sudah fiture - fiture yang ada di framework ini seperti koneksi database,json formater dan banyak lagi. Untuk lebih lanjutnya bisa di buka di LINK_INI.
Langsung Saja saya tunjukan langkah - langkah membuat Golang Rest API menggunakan GIN framework, ini juga hasil berguru saya dan cari - cari referensi
Sebelumnya Untuk Koding GO harus mengatur gopath dan goroot nya dulu untuk itu bisa di lihat di tutorial LINK_INI
Setelah Sudah di setting saatnya untuk beraksi.
Pertama Ketikan :
perintah di atas adakah untuk memclone framework gin , gorm dan go driver sql
owh iya di sini untuk ORM nya saya memakai GORM.
Setelah itu Kita Buat koneksi Ke database seperti berikut:
Di atas adalah kodingan untuk mengakses database menggunakan gorm untuk mengakses database nya bisa di sesuaikan nantinya untuk user ,password dan nama database nya.
Selanjutnya Kita akan buat model nya untuk kita olah datanya. kalau di golang namanya adalah struct
kodingannya sebagai berikut:
di dalam model atau struch ini kita untuk membuat model itu sebagai Object table kita tandai dengan gorm.Model . Di dalam struct juga kita dapat langsung membuat json yang nantinya akan kita tampilkan nantinya dengan cara `json:"nama"` .
Selanjutnya kita akan buat function untuk Create nya. Kodingannya sebagai berikut :
function di atas adalah function untuk cretae data ke database menggunkan gin.Context yang digunakan untuk memanggil fungsi gin. Untuk binding data yang akan di masukan menggunakan c.Bind(&std) dengan pertama buat variable data atau object yang akan di masukan seperti contoh di atas adalah var std transformedStudent adalah objet yang saya gunakan untuk masukan. fungsi db.Create(&model) untuk menyimpan ke database berdasarkan data yang di masukan dari object. fungsi dari c.JSON(http.StatusOK, gin.H{"message": http.StatusOK, "result": model}) adalah untuk mengeluarkan response json dari function yang di buat.
Selajutnya kita membuat function get All berikut kodinganya:
fungsi dari adalah db.Find(&model) untuk mencari semua data yang ada di dalam database, sebelumnya kita definisikan dulu modelnya menjadi sebuah listnya dengan cara seperti berikut var model [] student . Untuk Flownya codingan di atas adalah mencari semua data yang di dalam database lalu di buat object model list setelah itu di transfer ke bentuk object view yang akan di tampilkan.
Selanjutnya kita membuat function get Detail berikut kodinganya:
Cara Untuk Parsing id di atas menggunakan fungsi modelID := c.Param("id") untuk mencari data sesuai dengan field yang di cari di sini saya mencari id yang di masukan . Dan fungsi untuk mencari data sesuai dengan param yang di inginkan dari fungsi di atas.
Selanjutnya kita membuat function update berikut kodinganya :
Untuk Update di atas ada fungsi db.Model(&model).Update(transferVoToModel(vo)) untuk mengupdate data ke dalam database.
Selanjutnya kita buat function delete berikut kodinganya:
Untuk Delete di atas ada fungsi db.Delete(model) untuk mendelete data yang ada di dalam database berdasarkan id yang di kirimkan.
Selanjutnya kita buat routernya untuk mengases semua function melalui REST HTTP berikut kodinganya:
Router di atas di gunakan untuk client mengakses function yang ada di dalam go dengan menggunakan REST HTTP. fungsi router := gin.Default() di gunakan untuk mendefinisikan variable router sebagai router gin default. fungsi v1 := router.Group("/api/student") digunakan untuk membuat nama url . fungsi router.Run(":20001") digunakan untuk membuat go berjalan di port yang di inginkan di sini saya menggunakan port 20001.
Demikian lah Tutorial membuat REST API Golang mengguanakan GIN framework, untuk kodingan versi full nya ada di LINK
Semoga bermanfaat untuk semuanya..
Sumber:
https://medium.com/@thedevsaddam/build-restful-api-service-in-golang-using-gin-gonic-framework-85b1a6e176f3
https://github.com/gin-gonic/gin
https://github.com/jinzhu/gorm
https://www.youtube.com/watch?v=Mq6qk2xPJsc&t=2039s
Showing posts with label functional programming. Show all posts
Showing posts with label functional programming. Show all posts
Saturday, June 23, 2018
Saturday, December 16, 2017
Intro to Kotlin: Extension, Lambda Expression and Higher Order Function
Pada tulisan sebelumnya tentang Kotlin, saya telah membahas 4 fitur unggulan yang dimiliki Kotlin yaitu Multiple Top Declaration, Named Parameter, Optional Semicolon dan Default Parameter. Selain 4 fitur keren di atas, terdapat beberapa fitur lain yang ada pada bahasa ini yang menurut saya tidak kalah kerennya. Fitur yang dimaksud adalah Extension, Higher Order Function dan Lambda Expression.
Extension
Extension adalah fitur pada Kotlin yang memungkinkan kita untuk menambahkan property dan function pada suatu kelas tanpa mengubah atau meng-extend kelas tersebut. Fitur ini sangat berguna jika kita menggunakan library yang dibuat oleh orang lain dan menemukan kekurangan dan ingin menambahkan sesuatu pada library tersebut. Berikut ini adalah contoh bagaimana extension dapat digunakan.
Misalnya kita menggunakan library yang memiliki kelas Person di dalamnya dan ingin menambahkan fungsi untuk menari dan dan ingin menambahkan property untuk mengetahui apakah objek Person yang kita buat itu sudah tua atau belum. Salah satu cara untuk melakukan ini tanpa extension adalah dengan membuat kelas baru yang meng-extend kelas Person dan menambahkan secara manual property dan fungsi yang diinginkan pada kelas tersebut. Tetapi, karena Kotlin memiliki fitur extension, hal ini dengan mudah dapat dilakukan dengan cara seperti di bawah ini.
Lambda Expression
Fitur lainnya yang ingin saya bahas adalah Lambda Expression. Lambda expression atau juga sering disebut sebagai anonymous function adalah fungsi yang tidak dideklarasikan tetapi langsung digunakan dalam bentuk expression. Berikut ini adalah contoh Lambda Expression.
Di atas adalah contoh lambda expression yang merepresentasikan fungsi yang menerima satu parameter berupa objek Person dan mengembalikan boolean. Lambda expression akan terasa berguna saat kita menggunakan Higher Order Function yang akan saya bahas pada poin berikutnya.
Higher Order Function
Apakah yang dimaksud dengan Higher Order Function(yang selanjutnya akan disebut dengan HOF)? HOF adalah fungsi yang dapat menerima parameter berupa fungsi dan dapat mengembalikan fungsi. Lalu apa gunanya HOF? Pada Functional Programming, HOF sangat berguna untuk melakukan perhitungan yang direpresentasikan dengan bentuk fungsi. Salah satu bidang ilmu yang menggunakan functional programming adalah matematika. Pada bidang ilmu matematika, suatu masalah sering direpresentasikan dengan bentuk fungsi, dan biasanya fungsi pada matematika dapat berupa fungsi komposisi, yaitu fungsi suatu nilai yang juga merupakan sebuah fungsi. Di bawah ini adalah contoh dari HOF.
Fungsi di ataas adalah fungsi yang menerima tiga buah parameter. Parameter pertama adalah List of Person, parameter kedua adalah conditon dan parameter ketiga adalah action. Fungsi ini akan melakukan action pada setiap elemen di List of person jika condition terpenuhi.
Demikianlah tulisan saya kali ini tentang Kotlin, semoga dapat bermanfaat :)
Keep on hackin'!
Referensi
Reference - Kotlin Programming Language
Subscribe to:
Posts (Atom)