Aptech Jakarta
Kategori
  • Android
  • Aplikasi
  • Gadget
  • Game
  • Teknologi
  • Website
  • Windows

Wedding Organizer Surabaya | Wedding Organizer Gresik | Wedding Organizer Malang | Wedding Organizer Madura | Wedding Organizer Mojokerto | Wedding Organizer Jakarta | Wedding Organizer Bogor | Wedding Organizer Depok | Wedding Organizer Tangerang | Wedding Organizer Bekasi

Catering Surabaya | Catering Gresik | Catering Malang | Catering Mojokerto | Catering Jakarta | Catering Bogor | Catering Depok | Catering Tangerang | Catering Bekasi | Catering Jakarta Murah | Catering Bogor Murah | Catering Depok Murah | Catering Tangerang Murah | Catering Bekasi Murah

Supplier Sayur | Supplier Buah | Hosting Gratis
Catering Surabaya
 | Catering Gresik | Catering Malang | Catering Mojokerto | Catering Jakarta | Catering Bogor | Catering Depok | Catering Tangerang | Catering Bekasi

Catering Surabaya | Catering Malang | Catering Gresik | Catering Mojokerto | Catering Jakarta | Catering Bogor | Catering Depok | Catering Tangerang | Catering Bekasi

ApTech Jakarta
  • Beranda
  • Catering Jakarta
  • Catering Bogor
  • Catering Depok
  • Catering Tangerang
  • Catering Bekasi
  • Teknologi

Membuat API Sederhana dengan Ruby dan Sinatra

  • Oktober 13, 2017
  • admin
1

SHARES

ShareTweet

API adalah sebuah ‘rule’ yang sangat berperan penting pada sebuah aplikasi web modern maupun aplikasi mobile. Sebuah aplikasi yang berinteraksi dengan aplikasi yang lain dapat menggunakan sebuah protokol bernama API. API sendiri secara definisi sederhana merupakan protokol berbasis HTTP dengan pengembalian (return) yang berupa JSON maupun XML.

Clone This Project

Clone This Project

Banyak cara yang dapat dipakai oleh para pengembang untuk membangun sebuah web API. Hampir seluruh bahasa pemrograman berbasis web juga telah memiliki framework khusus yang diperuntukkan untuk membangun API. PHP, Python, Go, Ruby dan bahasa pemrograman lain.

Dalam dunia Ruby, kita dapat membuat sebuah API dengan framework Rails. Namun, tidak ada salahnya jika kita membangun sebuah API melalui jalan lain, dalam bahasa lain yakni “dengan tangan kosong” tanpa memanfaatkan framework semacam Rails.

Pada kesempatan yang sangat istimewa ini, penulis akan memberikan tutorial secara sederhana bagaimana membangun sebuah web API menggunakan Sinatra. Mari kita mulai!

Contents

  • 1 Membuat Sampel Database
  • 2 Persiapan Files
  • 3 Instalasi Gem
  • 4 Konfigurasi Project Aplikasi
  • 5 The App Itself
      • 5.0.1 my_db.rb
      • 5.0.2 app.rb

Membuat Sampel Database

Tutorial ini menggunakan MySQL dengan database yang diberi nama “sinatra”. Penulis membuat database melalui terminal dengan command berikut :

$ mysql -u root -p

untuk mengakses console mysql melalui terminal.

$ create database sinatra;

membuat database bernama sinatra

$ use sinatra;

menggunakan database sinatra sebagai default.

$ create table komedian (id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, nama VARCHAR(100));

membuat tabel bernama komedian dengan field id sebagai primary key dan field nama untuk menyimpan data nama.

$ insert into komedian (nama) values ("sule bibir"), ("andre stinky");

memasukkan sampel dua data ke dalam tabel komedian

$ exit;

keluar dari console mysql di terminal

Persiapan Files

Karena project ini tanpa melalui framework, tentu saja kita harus membuat beberapa file yang akan kita isi dengan script Ruby. Berikut adalah beberapa file tersebut:

  • app.rb

File ini akan menjadi file utama berupa App class sebagai gerbang utama protokol seluruh akses ke API.

  • my_db.rb

Karena API harus berinteraksi dengan database (dalam project ini MySQL). File ini akan kita pakai untuk membuat class yang berinteraksi langsung dengan database MySQL.

  • config.ru

File ini akan menjembatani file app.rb agar dapat berinteraksi dengan mini web server Ruby, seperti Puma maupun WebRick sehingga dapat diakses melalui browser untuk pengetesan.

  • Gemfile

Kumpulan gem akan kita tulis disini agar dapat diakses melalui command Bundle di terminal sehingga sistem dapat melakukan instalasi gem yang kita perlukan.

Sinatra Ruby API files

Sinatra Ruby API files

Pastikan pembaca membuat file-file tersebut dan tempatkan dalam sebuah folder yang mudah diakses.

Instalasi Gem

Project kali ini membutuhkan dua Gem (library) yang berperan penting, pertama adalah Sinatra gem dan kedua adalah Mysql2 gem. Buka file Gemfile, dan tulis skrip berikut:


source ‘http://rubygems.org’
# main gems
gem ‘sinatra’
gem ‘mysql2’

view raw

Gemfile

hosted with ? by GitHub

Simpan dan akses folder project melalui terminal. Kemudian panggil command “bundle install” untuk melakukan instalasi Gem pada project.

$ bundle install

Jika sukses, pada informasi terminal akan memperlihat gems pendukung yang juga terpasang secara otomatis. Seperti gambar berikut:

bundle install

bundle install

Selain itu, bundle juga secara otomatis membuat file bernama Gemfile.lock yang berisi informasi detail versi Gem yang terpakai pada project.

Konfigurasi Project Aplikasi

File konfigurasi terletak di dalam config.ru, dan cukup sederhana. Buka file config.ru dan simpan script berikut:


require ‘./app’
run App

view raw

config.ru

hosted with ? by GitHub

  • Baris pertama melakukan require terhadap file app.js
  • dan baris kedua berfungsi untuk menjembatani command rack pada terminal

The App Itself

my_db.rb

File ini berupa class yang dipakai untuk melakukan query maupun koneksi secara langsung pada database MySQL yang telah kita buat sebelumnya. Tentu saja, file ini juga membutuhkan gem “mysql2”. Berikut adalah script my_db.rb:


require “mysql2”
class MyDatabase
def initialize
@client = Mysql2::Client.new(
:host => “localhost”,
:username => “root”,
:password => “yourpassword”,
:database => “sinatra”
)
end
def select_all_komedian
@hash = Hash.new
@array = Array.new
@query = @client.query(“SELECT * FROM komedian ORDER BY id”)
@query.each do |a|
@hash = {:id => a[‘id’], :nama => a[‘nama’]}
@array << @hash
end
return @array.to_json
end
end

view raw

my_db.rb

hosted with ? by GitHub

  • initialize digunakan untuk mendeskripsikan variabel @client yang berisi kredensial sistem.
  • select_all_komedian, berisi fungsi query untuk mengambil kesuluruhan data dari tabel komedian. Return fungsi ini berupa konversi dari array of hash menjadi json.
app.rb

Baiklah, setelah kita berhasil membuat sebuah class MyDatabase pada file my_db.rb. Selanjutnya adalah mengisi file app.rb dengan script berikut: