Contoh Web Service RESTful Yang Sangat Ringan Di Java

Contoh Web Service RESTful Yang Sangat Ringan Di Java – Web Service, dalam satu atau lain bentuk, telah ada selama lebih dari dua dekade. Misalnya, layanan XML-RPC muncul pada akhir 1990-an, diikuti segera oleh yang ditulis dalam cabang SOAP. Layanan dalam gaya arsitektur REST juga muncul sekitar dua dekade lalu, segera setelah perintis XML-RPC dan SOAP.

inowweb

Contoh Web Service RESTful Yang Sangat Ringan Di Java

inowweb – Layanan gaya REST (selanjutnya, Restful) sekarang mendominasi di situs-situs populer seperti eBay, Facebook, dan Twitter. Terlepas dari alternatif Web Service untuk komputasi terdistribusi (misalnya, soket web, layanan mikro, dan kerangka kerja baru untuk panggilan prosedur jarak jauh), Web Service yang tenang tetap menarik karena beberapa alasan:

Layanan yang tenang dibangun di atas infrastruktur dan protokol yang ada, khususnya, server web dan protokol HTTP/HTTPS. Organisasi yang memiliki situs web berbasis HTML dapat dengan mudah menambahkan Web Service untuk klien yang lebih tertarik pada data dan fungsionalitas yang mendasarinya daripada pada presentasi HTML. Amazon, misalnya, telah memelopori penyediaan informasi dan fungsionalitas yang sama melalui situs web dan layanan web, baik berbasis SOAP atau Restful.

Baca Juga : Cara Membuat Panduan Gaya Desain Web Lengkap

Layanan yang tenang memperlakukan HTTP sebagai API, sehingga menghindari lapisan perangkat lunak yang rumit yang menjadi ciri pendekatan berbasis SOAP untuk layanan web. Sebagai contoh, Restful API mendukung operasi CRUD (Buat-Baca-Perbarui-Hapus) standar masing-masing melalui kata kerja HTTP POST-GET-PUT-DELETE; Kode status HTTP memberi tahu pemohon apakah permintaan berhasil atau mengapa gagal.

Web Service yang tenang dapat sesederhana atau serumit yang diperlukan. Tenang adalah sebuah gaya—bahkan, gaya yang sangat fleksibel—daripada seperangkat aturan tentang bagaimana layanan harus dirancang dan terstruktur. (Kelemahan petugas adalah bahwa mungkin sulit untuk menentukan apa yang tidak dihitung sebagai layanan Restful.)

Untuk konsumen atau klien, Web Service Restful bersifat netral terhadap bahasa dan platform. Klien membuat permintaan dalam HTTP(S) dan menerima tanggapan teks dalam format yang sesuai untuk pertukaran data modern (misalnya, JSON).

Hampir setiap bahasa pemrograman tujuan umum memiliki setidaknya dukungan yang memadai (dan seringkali kuat) untuk HTTP/HTTPS, yang berarti bahwa klien layanan web dapat ditulis dalam bahasa tersebut.

Artikel ini mengeksplorasi layanan Restful ringan di Java melalui contoh kode lengkap.

Web Service novel Restful

Web Service novel Restful terdiri dari tiga kelas yang ditentukan oleh programmer:

The Novelkelas merupakan novel dengan hanya tiga sifat: ID mesin yang dihasilkan, penulis, dan judul. Properti dapat diperluas untuk lebih realisme, tetapi saya ingin membuat contoh ini tetap sederhana.

The Novelskelas terdiri dari utilitas untuk berbagai tugas: mengkonversi encoding teks biasa dari Novelatau daftar mereka ke XML atau JSON; mendukung operasi CRUD pada koleksi novel; dan inisialisasi pengumpulan dari data yang disimpan dalam file. The Novelsmenengahi kelas antara Novelcontoh dan servlet.

The NovelsServletatau diperoleh kelas dari HttpServlet, sebuah kokoh dan fleksibel software yang telah ada sejak perusahaan sangat awal Java dari akhir 1990-an. Servlet bertindak sebagai titik akhir HTTP untuk permintaan CRUD klien. Kode servlet berfokus pada pemrosesan permintaan klien dan menghasilkan respons yang sesuai, meninggalkan detail jahat ke utilitas di Novelskelas.

Beberapa kerangka kerja Java, seperti Jersey (JAX-RS) dan Restlet, dirancang untuk layanan Restful. Meskipun demikian, HttpServletAPI itu sendiri menyediakan API yang ringan, fleksibel, kuat, dan teruji dengan baik untuk memberikan layanan semacam itu. Saya akan menunjukkan ini dengan contoh novel.

Terapkan layanan web novel

Menyebarkan layanan web novel membutuhkan server web, tentu saja. Pilihan saya adalah Tomcat , tetapi layanannya akan berfungsi (kata-kata terakhir yang terkenal!) Jika di-host di, misalnya, Jetty atau bahkan Server Aplikasi Java. Kode dan README yang merangkum cara menginstal Tomcat tersedia di situs web saya . Ada juga skrip Apache Ant yang didokumentasikan yang membangun layanan novel (atau layanan atau situs web lainnya) dan menyebarkannya di bawah Tomcat atau yang setara.

Tomcat tersedia untuk diunduh dari situs webnya . Setelah Anda menginstalnya secara lokal, biarkan TOMCAT_HOMEmenjadi direktori instal. Ada dua subdirektori minat langsung:

The TOMCAT_HOME/bindirektori berisi startup dan berhenti skrip untuk Unix-seperti sistem ( startup.shdan shutdown.sh) dan Windows ( startup.batdan shutdown.bat). Tomcat berjalan sebagai aplikasi Java. Wadah servlet server web bernama Catalina. (Di Jetty, server web dan wadah memiliki nama yang sama.) Setelah Tomcat dimulai, masuk http://localhost:8080/ke browser untuk melihat dokumentasi ekstensif, termasuk contoh.

The TOMCAT_HOME/webappsdirektori default untuk situs dikerahkan dan layanan web. Cara langsung untuk menyebarkan situs web atau layanan web adalah dengan menyalin file JAR dengan .warekstensi (oleh karena itu, file WAR) ke TOMCAT_HOME/webappsatau subdirektori daripadanya.

Tomcat kemudian membongkar file WAR ke direktorinya sendiri. Misalnya, Tomcat akan membongkar novels.warke dalam subdirektori bernama novels, membiarkan novels.warapa adanya. Situs web atau layanan dapat dihapus dengan menghapus file WAR dan diperbarui dengan menimpa file WAR dengan versi baru. Omong-omong, langkah pertama dalam men-debug situs web atau layanan adalah memeriksa apakah Tomcat telah membongkar file WAR; jika tidak, situs atau layanan tidak dipublikasikan karena kesalahan fatal dalam kode atau konfigurasi.

Karena Tomcat mendengarkan secara default pada port 8080 untuk permintaan HTTP, URL permintaan untuk Tomcat di mesin lokal dimulai:

http://localhost:8080/

Akses file WAR yang digunakan oleh pemrogram dengan menambahkan nama file WAR tetapi tanpa .warekstensi:

http://locahost:8080/novels/

Jika layanan disebarkan di subdirektori (misalnya, myapps) dari TOMCAT_HOME, ini akan tercermin dalam URL:

http://locahost:8080/myapps/novels/

Saya akan menawarkan detail lebih lanjut tentang ini di bagian pengujian di dekat akhir artikel.

Seperti disebutkan, file ZIP di beranda saya berisi skrip Semut yang mengkompilasi dan menyebarkan situs web atau layanan. (Salinan novels.warjuga disertakan dalam file ZIP.) Untuk contoh novel, contoh perintah (dengan %sebagai prompt baris perintah) adalah:

% ant -Dwar.name=novels deploy

Perintah ini mengkompilasi file sumber Java dan kemudian membuat file yang dapat digunakan bernama novels.war, meninggalkan file ini di direktori saat ini, dan menyalinnya ke TOMCAT_HOME/webapps. Jika semuanya berjalan dengan baik, GETpermintaan (menggunakan browser atau utilitas baris perintah, seperti curl) berfungsi sebagai tes pertama:

% curl http://localhost:8080/novels/

Tomcat dikonfigurasi, secara default, untuk penyebaran panas : server web tidak perlu dimatikan untuk menyebarkan, memperbarui, atau menghapus aplikasi web.

Kelas ini mengimplementasikan compareTometode dari Comparableantarmuka karena Novelinstance disimpan dalam thread-safe ConcurrentHashMap, yang tidak menerapkan urutan yang diurutkan. Dalam menanggapi permintaan untuk melihat koleksi, layanan novel mengurutkan koleksi (an ArrayList) yang diambil dari peta; implementasi compareTomemberlakukan urutan menaik berdasarkan NovelID.