Dicoding's Blog

Mengetahui Lokasi Darurat dengan Ericsson Safe City API

Selamat kepada para developer yang telah berhasil mendapatkan akses ke Ericsson API. Pada artikel sebelumnya kami telah menyediakan tutorial bagaimana caranya memanfaatkan Ericsson Networked Event API yang bisa Anda baca disini. Artikel tersebut bisa Anda jadikan panduan untuk mengembangkan aplikasi dan diikutkan dalam Sport Digital Experience.

Selain ENE API, Ericsson juga telah menyediakan Safe City API yang bisa Anda manfaatkan untuk mengembangkan aplikasi bertemakan Smart City Digital Service. Pada artikel ini kami akan memberikan tutorial penggunaan Ericsson Safe City API. Disini akan dicontohkan bagaimana caranya membuat aplikasi untuk mengetahui lokasi darurat dan tempat umum di sekitar pengguna.

Pada artikel sebelumnya Anda sudah mengenal Ericsson Developer Portal yang bisa Anda akses melalui http://asiangamesdigitalchallenge2017.kemkominfo-ericsson.com/. Terdapat 3 pilihan menu pada portal tersebut. Pilihlah menu Safe City untuk melihat service yang disediakan.

Ericsson Developer Portal

Pengenalan Ericsson Safe City API

Safe City API adalah API yang menyediakan data seputar Safe City seperti Emergency response ticket, Emergency vehicle, serta Sensor and Actuators. Emergency response ticket dan Emergency vehicle dapat diakses dengan menggunakan id atau dengan mencarinya berdasarkan radius dalam peta melalui REST API. Sedangkan untuk posisi Emergency vehicle dapat diakses dengan menggunakan protokol MQTT. Untuk lebih lengkapnya Anda bisa eksplore sendiri pada link berikut. Terdapat juga Workforce Manager yang bisa digunakan untuk manage data seputar Safe City. Workforce Manager bisa Anda akses melalui link berikut.

Workforce Manager

Mengakses REST API dengan Swagger atau Postman

Pada API Documentation terdapat 3 pilihan yang bisa Anda pelajari yaitu WIKI, REST API, dan MQTT. Pada artikel ini hanya akan dijelaskan cara mengakses REST API, untuk MQTT bisa Anda eksplorasi sendiri. Silahkan pilih REST API pada API Documentation untuk masuk ke dalam Swagger.

API Documentation

Untuk dapat mengakses semua service pada Safe City API, Anda harus mendapatkan Authentication Token terlebih dahulu dengan cara memilih service authentication dan memasukan username serta password dari akun Ericsson Developer Portal. Anda akan mendapatkan reponse berupa projectId dan token. Gunakan token tersebut sebagai header Authorization untuk mengakses semua service yang ada pada Safe City API.

Token Response

Klik tombol Authorize di sebelah kanan atas pada portal swagger dan masukkan token yang didapat untuk melakukan otorisasi. Jika berhasil maka Anda sudah bisa mengakses semua service yang ada. Misalnya Anda ingin mengetahui daftar Emergency ticket response di sekitar lokasi Anda, pilihlah service ticket dengan method GET : /ticket/find/{radius} kemudian masukkan radius dalam satuan meter. Tekan tombol Execute maka akan didapatkan data Emergency ticket response dalam bentuk JSON response.

JSON Response

Jika Anda ingin mengakses Safe City API dengan Postman, masukkan base url diikuti path dari service yang akan diakses. Contohnya Anda ingin mengakses service pointofinterest maka request url-nya adalah http://wfm.asiangamesdigitalchallenge2017.kemkominfo-ericsson.com/wfm/rest/v1/pointinterest/all/{radius} . Kemudian pada Headers masukkan ‘Authorization : token’ dan ‘Content-type : application/json’. Tekan tombol Send, jika berhasil akan didapatkan response berupa data PoI dalam radius yang telah ditentukan.

Request API via Postman

Implementasi ke dalam aplikasi Android

Seperti pada artikel sebelumnya, kita akan mencoba mengimplementasikan Safe City API ke dalam aplikasi Android. Untuk struktur project, development pattern, dan library yang akan digunakan masih sama seperti pada artikel sebelumnya.

Google Maps API Key
Anda perlu membuat credentials dari Google Maps API untuk mendapatkan API Key yang nantinya akan ditambahkan pada AndroidManifest.xml. Untuk cara membuatnya silahkan ikuti caranya pada link berikut.

POJO (Plain Old Java Object)
Siapkanlah model dalam bentuk POJO untuk menerima Emergency ticket response dan Point of Interest response. Anda bisa menggunakan http://www.jsonschema2pojo.org/ untuk melakukan konversi dari JSON ke POJO.

Service dan API Builder
Buatlah class dengan beberapa method yang akan digunakan untuk request ke Safe City API.

Kemudian Anda perlu membuat Retrofit Builder dengan menggunakan Interceptor dari OkHttp. Di class ini Anda harus menambahkan base url dan authorization header dengan token yang sudah Anda peroleh tadi.

Layout
Pada layout activity_main.xml, tambahkanlah map fragment dan spinner seperti berikut.

Presenter
Buatlah class Presenter, tambahkan method getTicketList dan getPoiList dengan parameter radius.

Location Manager
Location Manager digunakan untuk mengetahui lokasi device saat ini. Method ini nantinya akan digunakan untuk mendapatkan latitude dan longitude yang kemudian akan dipakai sebagai acuan untuk menampilkan data Emergency ticket response dan PoI berdasarkan radius yang telah ditentukan.

Parsing Data Emergency ticket response
Setelah berhasil mendapatkan data dari Emergency ticket response maka selanjutnya Anda harus menampilkan data tersebut ke dalam map fragment dalam bentuk marker. Dan setiap marker akan dibedakan warnanya berdasarkan tingkat Emergency.

Parsing Data Point of Interest
Sama dengan data yang diperoleh dari Emergency ticket response, data dai PoI juga akan kita parsing ke dalam map fragment berupa marker berdasarkan jenis PoI. Dan ketika marker tersebut disentuh, marker akan menampilkan dialog detail dan juga tombol get direction untuk menampilkan rute menuju lokasi di dalam Google Maps.

Dan hasilnya akan seperti ini jika Anda menjalankan aplikasi ke device.

 

Source code dari contoh aplikasi di atas dapat dilihat melalui link berikut. Buatlah aplikasi yang berguna untuk mendukung kesuksesan Asian Games 2018. Jangan lupa submit aplikasi Anda pada challenges Smart City Digital Service.

Jika ada pertanyaan silahkan tulis di kolom komentar. Semoga sedikit tutorial di atas dapat bermanfaat.

Share this:

Leave a comment