Selamat siang
Belum lama ini, ada kebutuhan untuk mengimplementasikan komunikasi aplikasi android dengan API server melalui
permintaan REST . Menerapkan bagian perangkat lunak pada android tidak sulit, karena kehadiran perpustakaan
Retrofit yang nyaman dan sederhana. Namun, setelah menulis beberapa permintaan GET / POST ke API terbuka yang ada (misalnya, Github dan contoh Retrofit standar lainnya), penting untuk mulai menguji logika aplikasi. Dalam hal ini, tentu saja, saya ingin memiliki server saya sendiri, yang berisi model datanya dan memiliki interkoneksi antar model, serta berbagai tingkat akses ke model data tertentu. Pada artikel ini, saya ingin memberi tahu Anda cara membuat server lokal dalam beberapa langkah kecil, menambahkan model yang diperlukan, mengkonfigurasi hubungan di antara mereka dan menyediakan akses jarak jauh ke server ini.
Saya ingin segera mengklarifikasi untuk menghindari kesalahpahaman di pihak pembaca:
Saya, serta orang-orang yang menjadi tujuan artikel ini, adalah seorang pemula dalam implementasi bagian server, yang, secara kebetulan, masuk ke dalam situasi di mana saya dipaksa untuk menaikkan api secepat mungkin bagi saya sendiri untuk menguji aplikasi android. Semua informasi yang disajikan dalam artikel sedikit demi sedikit dapat ditemukan di ruang terbuka google dan youtube dan untuk menemukannya dan merakitnya menjadi satu keseluruhan tidak akan sulit jika Anda tahu apa yang harus dicari. Namun, ini membutuhkan waktu untuk membuat keputusan tentang implementasi teknologi, serta untuk mencari informasi untuk setiap keputusan spesifik.
1. NodeJS dan Loopback
Hal pertama yang Anda perlu segera klarifikasi adalah bahwa server akan diimplementasikan menggunakan kerangka kerja Lodode Node.js. Pertama, instal Node.js. sendiri. Versi terbaru Node.js ada di situs
nodejs.org/en/download , unduh dan instal.
Setelah itu, jalankan baris perintah dan masukkan perintah berikut dan tunggu akhir proses:
npm install -g loopback-cli
2. Buat aplikasi
Untuk membuat aplikasi baru (server Anda) untuk kerangka kerja
Loopback , buka direktori tempat server Anda berada di baris perintah, masukkan perintah
lb dan jawab sejumlah pertanyaan tentang aplikasi, termasuk:
- nama aplikasi (dalam kasus saya, test_server)
- nama direktori untuk proyek (biarkan kosong, maka folder dengan nama proyek akan dibuat di direktori ini)
- Versi LoopBack (pilih versi saat ini)
- jenis aplikasi (secara formal - template aplikasi. Pilih api-server)

Setelah menyelesaikan proses pembuatan aplikasi, buka folder yang dibuat dengan file aplikasi dan coba jalankan dengan perintah berikut:
node .
Aplikasi berjalan di alamat lokal:
localhost: 3000 / explorer . Selain itu, aplikasi tersebut sudah memiliki model Pengguna dan sejumlah fungsi REST.

Secara formal, server Anda siap dan berhasil memproses permintaan lokal. Anda dapat memeriksa ketersediaan dan pengoperasian server menggunakan aplikasi
Postman atau aplikasi Android Anda.
3. Model dan hubungan
Selanjutnya, Anda perlu membuat model dengan data dan hubungan di antara mereka. Pertimbangkan contoh sederhana model dan hubungan: bayangkan aplikasi kita memberikan umpan balik pada film. Anda memasukkan nama film dan harus menerima semua ulasan untuk film ini. Jadi, dalam kasus yang paling primitif, dua model harus disimpan dalam database:
Film (memiliki bidang: nama, tahun) dan
Ulasan (autor, deskripsi). Hubungan antara model adalah sebagai berikut, satu film dapat memiliki banyak ulasan.
Dengan demikian, permintaan REST untuk film akan memiliki
localhost: 3000 / api / Movies link, dan
localhost: 3000 / api / Movies / {id} / Ulasan ke daftar ulasan
Buat dua model ini di server:
lb model
Kami akan menjawab pertanyaan berikut tentang model:
- nama model (mis. Film)
- sumber data untuk koneksi (pilih db (memori))
- kelas dasar model (pilih PersistedModel)
- tampilkan model menggunakan REST API (Ya)
- bentuk jamak khusus (biarkan kosong)
- hanya model umum atau server (pilih umum)
Sekarang model dibuat dan Anda perlu menambahkan bidang ke dalamnya (untuk Film, misalnya, nama dan tahun):
- nama properti (mis. nama)
- jenis properti (mis. string)
- wajib (Ya)
- tampilkan model menggunakan REST API (Ya)
- nilai default (biarkan kosong)

Setelah menambahkan semua properti, melihat tawaran untuk menambahkan satu lagi, cukup tekan "Enter". Tambahkan juga model kedua.
Sekarang Anda perlu mengkonfigurasi hubungan di antara mereka. Kami menulis tim dan menjawab pertanyaan:
lb relation
- pilih model untuk membuat hubungan (mis. Film)
- jenis koneksi (pilih memiliki banyak (satu ke banyak), karena satu film memiliki banyak ulasan)
- pilih model untuk hubungan (dalam kasus kami, Ulasan)
- nama komunikasi (apa pun, saya akan menulis ulasan)
- kunci pengguna (biarkan kosong)
- model antara (Tidak)
- Izinkan Bersarang (Tidak)
- putuskan komunikasi dari benda-benda yang terhubung berikut (Tidak)

Itu saja. Sekarang mulai server dengan perintah yang sama seperti sebelumnya dan lihat
localhost: 3000 / explorer . Kami melihat bahwa kami memiliki model kami dan kami dapat melihat hubungan di antara mereka melalui
id .

4. Akses jarak jauh ke server
Sekarang akses ke server terbatas pada jaringan rumah, yang sangat tidak nyaman saat pengujian dari telepon. Mari kita coba untuk membuat server Anda jauh. Untuk melakukan ini, unduh
ngrok , bongkar di tempat yang nyaman dan luncurkan. Program ini dirancang untuk membuat terowongan untuk
hosting lokal Anda
: 3000 , untuk membuat akses jarak jauh untuknya menggunakan tautan yang dibuat. Masukkan perintah berikut dalam ngrok:
npm install ngrok -g ngrok http 3000

Kami melihat bahwa program tersebut telah membuat terowongan dan sekarang server Anda tersedia di tautan yang disediakan. Perlu diingat bahwa setiap kali Anda me-restart PC, tautan dalam ngrok akan berubah.
Kesimpulan
Itu disajikan di atas deskripsi yang agak kasar dan kering tentang proses membuat server NodeJs sederhana untuk menguji aplikasi Android Anda. Secara alami, ada banyak nuansa yang terkait dengan 4 langkah yang saya jelaskan.
Selain apa yang telah saya jelaskan, hanya dengan satu perintah Anda dapat mengubah tingkat akses ke api dan mengatur otentikasi pengguna. Jika ada yang tertarik - ajukan pertanyaan di komentar - saya akan menjawab. Kerangka itu sendiri memiliki
dokumentasi yang cukup rinci, termasuk bab-bab awal yang diterjemahkan ke dalam bahasa Rusia (meskipun untuk versi 2.0 dengan serangkaian perintah yang berbeda)
Ya, ini primitif, suatu tempat yang secara teknis bodoh, di suatu tempat yang terlalu sederhana, tetapi bagi seseorang yang tidak terlibat dalam teknologi server dan membutuhkan solusi cepat untuk menguji tugas utama mereka, solusi ini sesederhana dan secepat mungkin.