Apa Semua Bicara Ini Tentang Aplikasi Rack?

Ada banyak pembicaraan tentang Rak, tetapi kecuali jika Anda sendiri yang membuat kerangka kerja, Anda jarang melihatnya. Jadi apa itu Rack? Dan mengapa, sebagai pengembang aplikasi, Anda harus peduli?

Dasar Rak

Rak adalah sejenis middleware. Itu terletak di antara aplikasi web Anda dan server web. Ini menangani semua panggilan API khusus server, meneruskan permintaan HTTP dan semua parameter lingkungan dalam hash, dan mengembalikan respons aplikasi Anda ke server. Dengan kata lain, aplikasi Anda tidak perlu tahu cara berbicara dengan server HTTP, ia harus tahu cara berbicara dengan Rack.

Keuntungan Rack

Ini memiliki sejumlah keunggulan. Pertama, berbicara dengan Rack itu mudah (seperti yang akan Anda lihat di bawah). Kedua, karena Anda hanya perlu tahu cara berbicara dengan Rack, dan Rack tahu cara berbicara dengan banyak server HTTP yang berbeda, aplikasi Anda akan berjalan di salah satu server HTTP ini. Rak seperti adaptor universal untuk aplikasi web.

Aplikasi Rack sendiri bukan hal yang istimewa. Faktanya, API Rak sangat sederhana, bisa dijelaskan dalam satu kalimat:

instagram viewer
Aplikasi Rack adalah objek Ruby apa pun yang merespons panggilan metode, mengambil parameter hash tunggal dan mengembalikan array yang berisi kode status respons, header respons HTTP, dan badan respons sebagai array string.

Cukup banyak. Kedengarannya terlalu sederhana untuk menjadi kenyataan, atau setidaknya terlalu sederhana untuk berguna, tetapi ketika itu benar-benar terjadi, itulah yang benar-benar Anda lakukan ketika Anda berbicara dengan server HTTP.

Mengapa Rack Penting?

Tetapi pada pertanyaan sebenarnya: Mengapa, sebagai programmer aplikasi, Anda harus peduli tentang Rack? Yah pertama-tama, selalu ada pencerahan dalam memahami cara kerja kerangka Anda. Namun yang lebih penting, ada hal berguna yang bisa Anda lakukan dengan Rack. Paling penting: middleware.

Sekarang, ini terdengar agak aneh. Tetapi lapisan tambahan antara aplikasi Anda dan Rack bisa menjadi hal yang baik, dan mengimplementasikan fitur yang hanya akan mengacaukan aplikasi Anda. Apa yang dilakukan middleware ini hanyalah mengambil permintaan dari Rack, meneruskannya ke aplikasi Anda, dapatkan Menanggapi, menambahkan sesuatu ke dalamnya atau memfilternya atau sesuatu di sepanjang garis-garis ini dan kemudian meneruskannya kembali Rak. Ini dapat digunakan untuk mengimplementasikan fitur-fitur kecil yang sangat menarik seperti server-agnostic logger, atau permintaan pemeriksa kesehatan, atau middleware kecil yang mengirim email ke admin setiap kali aplikasi Anda kembali dengan 404. Tidak satu pun dari fitur ini yang perlu mengacaukan aplikasi Anda, mereka dapat diimplementasikan sebagai middleware dengan Rack.