Bagaimana Cara Menerapkan Layanan Web?

How to Deploy a Web Service_
How to Deploy a Web Service_

Artikel ini akan membahas tentang layanan web, keunggulannya, opsi penerapan layanan web, dan bagaimana layanan web dibandingkan dengan API.

Selain itu, Anda akan belajar cara menerapkan layanan web e-commerce ke cloud tanpa menulis kode kustom apa pun!

Hal-hal Penting yang Dapat Dipetik

  • Memahami Peran Layanan Web: Layanan web adalah komponen utama dari infrastruktur digital modern, yang menawarkan keuntungan signifikan seperti interoperabilitas, kemandirian platform, skalabilitas, dan keamanan.
  • Mengeksplorasi Opsi Penerapan: Menerapkan layanan web dapat didekati dengan beberapa cara, termasuk Hosting Konvensional, Platform sebagai Layanan (PaaS), Wadah sebagai Layanan (CaaS), dan Backend sebagai Layanan (BaaS).
  • Panduan Menerapkan Layanan Web ke Cloud: Artikel ini menyediakan panduan komprehensif tentang penerapan layanan web e-commerce menggunakan platform BaaS tanpa kode.

Apa yang dimaksud dengan Layanan Web?

Layanan web adalah perangkat lunak yang tersedia melalui internet, biasanya melalui Hypertext Transfer Protocol (HTTP). Data yang dilayani oleh layanan web adalah dalam format standar seperti XML, JSON, SOAP, atau YAML.

Layanan web digunakan untuk komunikasi mesin-ke-mesin dan bukannya dikonsumsi oleh pelanggan akhir secara langsung.

Misalnya, perangkat seluler Anda menggunakan layanan web cuaca untuk mengambil informasi cuaca dan kemudian menampilkannya dalam format yang bagus.

Ada beberapa jenis layanan web seperti Representational State Transfer (REST), GraphQL, dan gRPC.

Siklus hidup layanan web pada umumnya terlihat seperti ini:

  1. Layanan web mendengarkan di beberapa server pada port tertentu.
  2. Klien mengirimkan permintaan ke layanan web di port tersebut.
  3. Layanan web melakukan permintaan dan mengembalikan respons. Sebelum memproses respons, server juga dapat mengautentikasi dan mengesahkan permintaan.
  4. Klien memproses respons.

Layanan web dikenal dengan kemandirian platform dan bahasanya, dapat digunakan kembali, skalabilitas, fleksibilitas, dan dapat digabungkan secara longgar. Saat ini, layanan ini digunakan oleh hampir semua perusahaan IT.

Layanan Web vs API

Layanan web dan API adalah istilah yang mirip, tetapi tidak boleh digunakan secara bergantian.

Secara sederhana, layanan web adalah API yang hanya tersedia melalui internet. Ini berarti bahwa semua layanan web adalah API, sementara tidak semua API adalah layanan web.

Layanan Web versus Antarmuka Pemrograman Aplikasi (API)

API selain sebagai layanan web juga dapat melakukan hal-hal lain. Misalnya, interaksi sistem operasi, komunikasi aplikasi lokal, dan integrasi aplikasi.

Dua contoh API non-layanan web adalah API sistem file Python dan API DOM JavaScript.

Keuntungan Layanan Web

Layanan web adalah aspek fundamental dari infrastruktur digital modern, yang menawarkan banyak keuntungan. Mari kita bahas lebih lanjut!

Interoperabilitas

Salah satu keunggulan utama layanan web adalah kemampuannya untuk memfasilitasi interoperabilitas antara sistem dan aplikasi yang berbeda.

Dengan mengikuti protokol standar seperti HTTP dan XML, layanan web memungkinkan komunikasi yang sempurna antara komponen perangkat lunak yang berbeda, terlepas dari tumpukan teknologi yang mendasarinya.

Kemandirian Platform

Hal hebat lainnya tentang layanan web adalah bahwa layanan ini sepenuhnya tidak bergantung pada platform. Layanan web dapat diimplementasikan dalam bahasa pemrograman apa pun dan berjalan pada sistem operasi apa pun, termasuk Windows, Linux, dan MacOS.

Seperti yang disebutkan di bagian sebelumnya, mereka juga dapat dikonsumsi di platform apa pun.

Sederhana & Efisien

Layanan web mudah dipahami dan diimplementasikan. Sebagian besar waktu, mereka bahkan tidak memiliki state sendiri. Sebaliknya, mereka menggunakan basis data atau memanfaatkan komponen perangkat lunak lain.

Mereka menawarkan pendekatan yang mudah untuk mengakses fungsionalitas melalui jaringan. Kesederhanaan ini membantu konsistensi dalam interaksi, sehingga lebih mudah untuk memahami dan menggunakan layanan di berbagai platform dan teknologi.

Skalabilitas

Layanan web sangat mudah diskalakan. Layanan ini dapat mengakomodasi lalu lintas apa pun dengan penskalaan vertikal, yaitu menambahkan sumber daya tambahan ke simpul server, atau penskalaan horizontal, yaitu memunculkan simpul server tambahan.

Hal ini dapat membantu Anda memangkas biaya secara signifikan dengan memastikan tidak ada sumber daya komputasi yang terbuang sia-sia.

Dapat digunakan kembali

Hal terbaik tentang layanan web adalah layanan ini sangat dapat digunakan kembali. Alih-alih mengintegrasikan kode yang sama ke dalam beberapa aplikasi, semuanya dapat memanfaatkan satu contoh layanan web.

Reusabilitas menghasilkan basis kode yang lebih kecil dan lebih mudah dipelihara, sentralisasi yang lebih baik, dan memungkinkan Anda menghemat sumber daya.

Keamanan

Layanan web dapat memanfaatkan autentikasi, otorisasi, enkripsi, dan langkah-langkah keamanan lainnya. Sebagian besar layanan web dilindungi menggunakan enkripsi SSL/TSL.

Semua ini memastikan kerahasiaan (memastikan hanya pengirim dan penerima yang dapat membaca pesan) dan integritas (pesan tidak dimodifikasi dalam perjalanan).

Opsi Penyebaran Layanan Web

Layanan web dapat di-host sendiri atau diterapkan ke cloud. Opsi cloud yang paling populer untuk menerapkan layanan web adalah:

  • Platform sebagai Layanan (PaaS)
  • Kontainer sebagai Layanan (CaaS)
  • Backend sebagai Layanan (BaaS)

Setiap model cloud memiliki kelebihan dan kekurangan yang harus dipertimbangkan saat menerapkan proyek Anda. Faktor yang paling penting untuk dipertimbangkan adalah kemudahan penggunaan, anggaran, kinerja, dan fitur.

Piramida Hosting Layanan Web

Hosting Konvensional

Hosting konvensional adalah pendekatan tradisional untuk menghosting situs web dan aplikasi. Server dapat dihosting sendiri atau disediakan oleh perusahaan hosting.

Dengan hosting tradisional, Anda biasanya menyewa ruang peladen secara bulanan atau tahunan.

Fitur-fitur utama hosting konvensional meliputi:

  • Ruang Server – berbagai paket ruang server berdasarkan kebutuhan aplikasi Anda
  • Alat Manajemen Situs Web – alat yang mudah digunakan untuk mengelola situs web, misalnya cPanel
  • Hosting Email — layanan hosting email yang memungkinkan Anda mengaitkan domain dengan mereka
  • Akses FTP – file server dapat diakses melalui FTP atau FTP aman (SFTP)

Salah satu keuntungan utama dari hosting konvensional adalah keterjangkauannya, terutama untuk situs web dan bisnis kecil.

Namun, skalabilitas dan fleksibilitasnya kurang dibandingkan dengan solusi berbasis cloud. Hosting konvensional juga lebih menantang untuk disiapkan.

Platform sebagai Layanan (PaaS)

Platform sebagai Layanan (PaaS) memungkinkan pelanggan untuk membuat, mengelola, dan mendistribusikan aplikasi dalam lingkungan cloud.

Selain itu, perusahaan PaaS menyediakan berbagai alat prebuilt untuk pembuatan, penyesuaian, dan pengujian aplikasi.

Dibandingkan dengan IaaS, PaaS lebih mudah digunakan dan membutuhkan lebih sedikit pengalaman dalam administrasi sistem.

Selain itu, Anda bisa mendapatkan keuntungan dari penyeimbang beban, basis data terkelola, dan pencadangan otomatis. Dibandingkan dengan IaaS, PaaS memiliki lebih sedikit kebebasan dan kontrol serta memiliki risiko lebih tinggi terhadap penguncian vendor.

Kontainer sebagai Layanan (CaaS)

Containers as a Service (CaaS) adalah model komputasi awan populer lainnya. CaaS mempermudah pengembangan, eksekusi, penerapan, dan pemeliharaan perangkat lunak dalam kontainer. Model ini sering kali dikombinasikan dengan Docker dan Docker Compose.

Sebagian besar platform CaaS menyediakannya:

  • Mesin Docker
  • Registri kontainer
  • Kemampuan penskalaan

Keuntungan utama dari perangkat lunak dalam container adalah bahwa perangkat lunak ini dapat digunakan di mana saja. Tidak ada vendor yang terkunci, artinya Anda bisa dengan bebas beralih dari satu penyedia cloud ke penyedia cloud lainnya. Hal ini secara khusus berguna untuk layanan web.

Backend sebagai Layanan (BaaS)

Backend as a Service (BaaS) adalah model komputasi awan yang menangani infrastruktur Anda dan mengotomatiskan bagian backend pengembangan.

Selain itu, ia menawarkan kemampuan seperti basis data real-time, penyimpanan file, integrasi media sosial, email dan pemberitahuan push, dan banyak lagi.

Hasilnya, pengembang dapat berkonsentrasi pada pembuatan front end tanpa perlu mengkhawatirkan infrastruktur dan backend.

Frontend sering kali dibangun menggunakan API dan SDK milik vendor BaaS. Dengan memanfaatkan BaaS, Anda bisa menyederhanakan basis kode dan membuatnya lebih mudah dipelihara.

BaaS menyediakan semua keuntungan dari IaaS dan PaaS sambil menyediakan lapisan abstraksi backend. Dengan menggunakan BaaS, tim dapat memangkas waktu untuk memasarkan dan menghemat biaya teknik dan tenaga kerja.

Bagaimana Cara Menerapkan Layanan Web?

Bagian artikel ini akan memberikan panduan langkah demi langkah untuk menerapkan layanan web ke platform Back4app. Kami akan menggunakan solusi BaaS tanpa kode dari Back4app.

Jika Anda tertarik dengan solusi kode khusus, bacalah artikel berikut ini:

  1. Menerapkan Layanan Web Flask ke Kontainer Back4app
  2. Menerapkan Layanan Web Node.js ke Wadah Back4app
  3. Menerapkan Layanan Web PHP ke Wadah Back4app
  4. Menerapkan Layanan Web FastAPI ke Wadah Back4app

Apa itu Back4app?

Back4app adalah salah satu solusi Backend as a Service (BaaS) yang paling populer.

Dengan menggunakannya, Anda akan dapat secara signifikan mempercepat proses pengembangan Anda dan fokus pada aspek-aspek dasar aplikasi Anda – seperti logika bisnis dan frontend, sementara Back4app akan menangani sisanya.

Back4app menyediakan penerapan tanpa kode dan kode khusus. Sangat mudah digunakan dan praktis tidak memiliki kurva pembelajaran. Sangat cocok untuk pemula maupun pengembang yang lebih berpengalaman.

Hal yang hebat dari Back4app adalah secara otomatis menghasilkan API RESTful dan GraphQL berdasarkan kelas basis data Anda.

Selain itu, ia menyediakan SDK untuk hampir semua bahasa pemrograman populer atau framework, seperti React, Android, iOS, dan masih banyak lagi!

Fitur Inti Back4app

  • Basis data seperti spreadsheet
  • Manajemen & autentikasi pengguna
  • Pembuatan API otomatis
  • Fungsi & penjadwalan Cloud Code
  • Data waktu nyata

Untuk mengikuti artikel ini, Anda memerlukan akun Back4app gratis. Jika Anda belum memilikinya, Anda dapat membuatnya.

Pengenalan Proyek

Di sepanjang artikel ini, kita akan membangun API web e-commerce sederhana.

API akan menyediakan fungsionalitas produk, kategori produk, dan manajemen pembelian. API ini akan memungkinkan kita untuk melakukan operasi buat, baca, perbarui, dan hapus (CRUD) pada setiap kelas database.

Selain itu, kami akan menggunakan Cloud Code untuk mengimplementasikan fungsi khusus untuk menghitung statistik e-commerce, seperti total penjualan dan produk terpopuler.

Terakhir, kita akan menguji API menggunakan Back4app REST dan GraphQL Console bawaan.

Buat Aplikasi

Untuk bekerja dengan Back4app, pertama-tama Anda harus membuat aplikasi. Untuk melakukannya, autentikasi diri Anda menggunakan akun Back4app dan klik “Buat aplikasi baru” di dasbor aplikasi.

Back4app Buat Aplikasi

Platform Back4app memungkinkan Anda untuk menggunakan dua jenis aplikasi:

  1. Backend sebagai Layanan (BaaS)
  2. Kontainer sebagai Layanan (CaaS)

Kedua model komputasi awan memungkinkan Anda untuk menggunakan layanan web.

Perbedaan utamanya adalah bahwa BaaS merupakan backend yang lengkap, sedangkan CaaS memungkinkan Anda untuk menggunakan layanan web yang terkontainerisasi.

Dengan kata lain, BaaS adalah solusi yang sebagian besar tanpa kode, sedangkan CaaS adalah solusi kode khusus.

Kami akan menggunakan Backend sebagai Layanan (BaaS).

Back4app Backend sebagai Layanan (BaaS)

Ketika membuat aplikasi Back4app, Anda dapat memilih antara basis data NoSQL atau SQL. Untuk kasus penggunaan kami, ini tidak masalah, jadi kami akan tetap menggunakan NoSQL.

Berikan nama yang bagus untuk aplikasi Anda, dan klik “Buat”.

Konfigurasi Aplikasi Back4app

Tunggu sampai Back4app menangani semuanya, termasuk database, lapisan aplikasi, penskalaan, pengaturan manajemen pengguna, dll. Ini akan memakan waktu sekitar 2 menit.

Setelah selesai, Anda akan diarahkan ke tampilan basis data Anda.

Tampilan Basis Data Back4app

Merancang Basis Data

Selanjutnya, mari kita bahas tentang database.

Secara default, aplikasi Back4app dilengkapi dengan kelas basis data _Role dan _User. Kedua kelas ini digunakan untuk manajemen pengguna dan otentikasi.

Topik-topik ini berada di luar cakupan tutorial ini, tetapi Anda dapat membaca artikel kami yang lain untuk mempelajarinya.

Untuk membuat API web e-commerce, kita akan membuat struktur basis data berikut ini:

Diagram ER Basis Data E-Commerce

Kita akan mulai dengan membuat kelas ProductCategory.

Klik “Tambah Kelas” pada bilah sisi untuk membuat kelas database baru. Beri nama “ProductCategory”, aktifkan “Public Read and Write”, dan klik “Create class & add columns”.

Back4app Buat Kelas

Tambahkan kolom-kolom berikut ke dalamnya:

+-----------------------------+-------------+---------------+----------+
| Type                        | Name        | Default value | Required |
+-----------------------------+-------------+---------------+----------+
| String                      | name        | <leave blank> | yes      |
+-----------------------------+-------------+---------------+----------+
| String                      | description | <leave blank> | no       |
+-----------------------------+-------------+---------------+----------+

Selanjutnya, lakukan langkah yang sama untuk membuat kelas Product:

+-----------------------------+-------------+---------------+----------+
| Type                        | Name        | Default value | Required |
+-----------------------------+-------------+---------------+----------+
| String                      | name        | <leave blank> | yes      |
+-----------------------------+-------------+---------------+----------+
| String                      | description | <leave blank> | no       |
+-----------------------------+-------------+---------------+----------+
| Relation -> ProductCategory | categories  | true          | yes      |
+-----------------------------+-------------+---------------+----------+
| Number                      | price       | 0.0           | yes      |
+-----------------------------+-------------+---------------+----------+
| Boolean                     | inStock     | true          | yes      |
+-----------------------------+-------------+---------------+----------+

Terakhir, jagalah kelas Pembelian:

+-----------------------------+-------------+---------------+----------+
| Type                        | Name        | Default value | Required |
+-----------------------------+-------------+---------------+----------+
| Pointer -> Product          | product     | <leave blank> | yes      |
+-----------------------------+-------------+---------------+----------+
| Number                      | quantity    | 1             | yes      |
+-----------------------------+-------------+---------------+----------+

Luar biasa, Anda telah berhasil membuat struktur database.

Seperti yang dapat Anda lihat, tipe data Pointer menangani hubungan 1:n (satu ke banyak), dan tipe data Relasi menangani hubungan n:m (banyak ke banyak).

Hal terakhir yang harus Anda lakukan adalah mengisi database dengan beberapa kategori produk, produk, dan pembelian. Ini akan memungkinkan kita untuk menguji layanan web nanti untuk memastikan semuanya berfungsi seperti yang diharapkan.

Untuk mengisi basis data, Anda dapat melakukannya:

  1. Buat beberapa kategori produk, produk, dan pembelian sendiri
  2. Mengimpor ekspor basis data ini dari GitHub (“Lainnya > Impor > Data Kelas”)

Penggunaan Layanan Web

Untuk terhubung ke layanan web, Back4app memungkinkan beberapa pendekatan:

  1. API RESTful yang dibuat secara otomatis
  2. API GraphQL yang dihasilkan secara otomatis
  3. Mengurai SDK

Mari kita lihat masing-masing dari mereka!

REST API

Representational state transfer (REST) adalah protokol berbasis HTTP yang memanfaatkan metode HTTP, seperti OPTIONS, GET, POST, DELETE, dan sebagainya.

Sebagian besar API yang Anda gunakan saat ini berbasis REST. API ini mendukung berbagai format data, tetapi JSON adalah yang paling umum digunakan.

REST adalah protokol yang efektif, sangat skalabel, dan tidak bergantung pada platform. Protokol ini dapat digunakan dengan bahasa pemrograman atau kerangka kerja apa pun.

Kekurangan utamanya adalah pengambilan data yang berlebihan atau kekurangan data, tidak ada langganan waktu nyata, dan tidak ada sistem versi API.

Untuk menguji API REST, pilih “API > Console > REST” dan lakukan kueri berikut:

Konsol REST Back4app

Kueri ini akan menghasilkan respons berikut:

Untuk mempelajari lebih lanjut, baca Bagaimana Cara Membangun REST API?

API GraphQL

GraphQL adalah runtime sisi server dan bahasa kueri yang digunakan untuk membuat antarmuka pemrograman aplikasi (API).

GraphQL memungkinkan klien untuk meminta data spesifik dari API alih-alih bergantung pada backend untuk memasok kumpulan data yang telah ditentukan.

Keunggulannya meliputi fleksibilitas, kemudahan pemeliharaan, dan ekstensi GraphQL. Di sisi lain, kekurangannya adalah kompleksitas, kurva pembelajaran yang lebih curam, dan kurangnya standardisasi.

Untuk menguji API GraphQL, pilih “API > Konsol > GraphQL” dan lakukan kueri berikut:

Konsol GraphQL Back4app

Untuk mempelajari lebih lanjut, baca Bagaimana Cara Membangun API GraphQL?

Mengurai SDK

Parse SDK adalah pendekatan yang direkomendasikan jika frontend Anda dibangun dalam bahasa pemrograman atau kerangka kerja yang didukung oleh Parse SDK.

Ini termasuk React Native, Flutter, Android, iOS, JavaScript, IONIC, dan Xamarin.

Back4app API Connect

Kit pengembangan perangkat lunak (SDK) Parse menyediakan kelas dan fungsi untuk pengambilan data, manipulasi, autentikasi pengguna, data waktu nyata, fungsi Cloud Code, dan banyak lagi.

Contoh kode pengambilan data dalam JavaScript terlihat seperti ini:

Dokumentasi API

Hal hebat lainnya tentang Back4app adalah ia secara otomatis menghasilkan dokumentasi untuk semua kelas basis data Anda.

Dokumentasi ini mencakup deskripsi model, contoh praktis, instruksi tentang cara menangani kesalahan, dan banyak lagi.

Pilih “API > Referensi API” pada bilah sisi untuk melihat dokumen.

Dokumentasi Otomatis Back4app

Kode Cloud

API yang dibuat secara otomatis sangat bagus, tetapi Anda tidak dapat melakukan semuanya dengan API tersebut. Misalnya, jika Anda ingin melakukan kueri yang kompleks, mengumpulkan data, atau menjalankan kode khusus, Anda harus memanfaatkan fungsi Cloud Code.

Fungsi Cloud Code adalah penawaran Fungsi sebagai Layanan (FaaS) Back4app. Fungsi ini memungkinkan Anda untuk menentukan fungsi JavaScript khusus, yang dapat Anda jalankan melalui API atau dijadwalkan berdasarkan waktu tertentu.

Membuat Fungsi Kode Cloud

Mari kita buat dua fungsi Cloud Code untuk menghitung statistik e-commerce:

  1. totalPendapatan() akan menghitung total pendapatan dengan menjumlahkan pembelian
  2. topTenPopularProducts() akan mengembalikan produk paling populer berdasarkan pembelian

Pertama, buka “Cloud Code > Fungsi & Hosting Web” pada bilah sisi.

Anda akan melihat bahwa layar terbagi menjadi dua panel. Struktur direktori ada di sebelah kiri; Anda dapat memasukkan kode Anda di sebelah kanan.

Direktori default adalah:

  1. cloud yang digunakan untuk fungsi Cloud Code dan kode lainnya
  2. direktoripublik yang secara otomatis dilayani oleh Back4app (aset statis, CSS, HTML)

Navigasikan ke main.js.

Kode Cloud Back4app

Kemudian, masukkan kode berikut di dalamnya:

Terakhir, klik “Deploy” untuk menerapkan fungsi ke cloud.

Kode di atas dibuat menggunakan Back4app Agent – sebuah AutoGPT untuk pengembang. Agen ini terintegrasi erat dengan Back4app dan Back4app Containers. Ini memungkinkan Anda untuk membuat aplikasi, memodifikasi pengaturan aplikasi, menghasilkan kode khusus, dan banyak lagi.

Menguji Fungsi Kode Cloud

Pada bagian terakhir ini, kita akan menguji fungsi Cloud Code yang baru saja diimplementasikan.

Pertama, pilih “API > Konsol > JavaScript” pada bilah sisi dan kemudian tempelkan kode berikut:

Untuk menjalankannya, klik “Run” di kanan atas layar.

Anda akan mendapatkan tanggapan berikut ini:

// `totalRevenue` output

{
  "result": 9385.389999999994
}

Untuk menjalankan fungsi lainnya, ganti totalPendapatan dengan topTenPopularProducts.

// `topTenPopularProducts` output

{
  "result": [
    {"objectId": "SA5mUfq9Ll", "name": "Science Fiction Novel", "count": 3},
    {"objectId": "fV0DFPFlnz", "name": "Yoga Mat", "count": 3},
    {"objectId": "gA4zn19Udo", "name": "Smartphone", "count": 2},
    {"objectId": "UKeOHJkJ7l", "name": "Winter Jacket", "count": 2},
    {"objectId": "8PodlEps2R", "name": "Espresso Machine", "count": 2},
    {"objectId": "S15WrDgrpk", "name": "Hair Dryer", "count": 2},
    {"objectId": "8O2D1egX51", "name": "4K Television", "count": 1},
    {"objectId": "RriSWMDg48", "name": "Face Cream", "count": 1},
    {"objectId": "Cq3Hqww69Q", "name": "Blender", "count": 1}
  ]
}

Kesimpulan

Sebagai kesimpulan, Anda telah mempelajari tentang layanan web, keunggulannya, opsi penerapan, dan bagaimana perbandingannya dengan API. Anda sekarang juga harus dapat menerapkan layanan web Anda sendiri ke Back4app BaaS.

Untuk sumber artikel tambahan, lihat back4app-web-service repo.


Leave a reply

Your email address will not be published.