0Pricing
AWS Solutions Architect · Pelajaran

REST API vs HTTP API vs WebSocket API

Pahami pertukaran antara REST API (kaya fitur), HTTP API (latensi rendah dan biaya rendah), serta WebSocket API (dua arah), lalu pilih yang sesuai.

REST API vs HTTP API vs WebSocket API adalah pelajaran AWS Solutions Architect gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AWS Solutions Architect, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AWS Solutions Architect mencakup 4 pelajaran total.

Alasan API Gateway Dibuat

Amazon API Gateway adalah layanan yang dikelola sepenuhnya dan memungkinkan Anda membuat, menerbitkan, mengamankan, serta memantau API dalam skala apa pun. Layanan ini berfungsi sebagai pintu depan untuk layanan backend Anda—fungsi Lambda, instans EC2, backend HTTP, atau layanan AWS apa pun. API Gateway menangani pengelolaan lalu lintas, otorisasi, pembatasan laju, pemantauan, dan pembuatan versi API, sehingga backend Anda dapat berfokus pada logika bisnis, bukan pada urusan infrastruktur API.

API REST: API Tradisional dengan Fitur Lengkap

API REST (produk API Gateway asli) menyediakan rangkaian fitur terluas: transformasi permintaan/tanggapan dengan templat pemetaan, pembatasan laju per metode, rencana penggunaan dengan kunci API, penyimpanan tanggapan dalam cache, integrasi WAF, pelacakan X-Ray, kebijakan sumber daya, dan TLS mutual dengan sertifikat klien. API REST mendukung semua jenis integrasi: Lambda, HTTP, layanan AWS, Mock, dan Lambda Proxy. Gunakan API REST jika Anda memerlukan fitur lanjutan seperti transformasi, caching, atau rencana penggunaan.

API HTTP: Alternatif Berlatensi Rendah dan Berbiaya Rendah

API HTTP dirancang sebagai alternatif yang lebih sederhana, murah, dan cepat dibandingkan API REST. API ini hanya mendukung integrasi proksi Lambda dan proksi HTTP—tidak mendukung integrasi layanan AWS maupun mock. Keunggulan utamanya: biaya hingga 70% lebih rendah daripada API REST, latensi lebih rendah, otorisasi JWT OIDC dan OAuth 2.0 bawaan (tidak memerlukan pengotorisasi Lambda untuk skenario autentikasi umum), serta penerapan otomatis. Jika Anda tidak memerlukan caching, rencana penggunaan, atau transformasi permintaan/tanggapan, API HTTP merupakan pilihan yang lebih baik.

# Create a simple HTTP API
aws apigatewayv2 create-api \
  --name 'MyHttpAPI' \
  --protocol-type HTTP \
  --target 'arn:aws:lambda:us-east-1:123456789012:function:MyLambda'

API WebSocket: Komunikasi Dua Arah Waktu Nyata

API WebSocket mempertahankan koneksi dua arah yang persisten antara klien dan server. Berbeda dari HTTP (permintaan-tanggapan), WebSocket memungkinkan server mendorong pesan ke klien yang terhubung kapan saja tanpa klien melakukan polling. API Gateway mengelola koneksi WebSocket dan merutekan pesan ke fungsi Lambda berdasarkan ekspresi rute. Gunakan API WebSocket untuk aplikasi waktu nyata: aplikasi obrolan, dasbor langsung, pengeditan kolaboratif, permainan, dan ticker saham.

Rute WebSocket dan Pengelolaan Koneksi

API WebSocket memiliki tiga rute bawaan: $connect (dipicu saat klien membuka koneksi), $disconnect (dipicu saat koneksi ditutup), dan $default (menangkap pesan yang tidak cocok). Anda dapat menambahkan rute khusus seperti sendmessage yang dipetakan ke fungsi Lambda tertentu. Gunakan API pengelolaan @connections untuk mengirim pesan kembali ke klien yang terhubung dari fungsi Lambda Anda menggunakan ID koneksi milik klien.

# Send a message to a specific WebSocket client from Lambda
import boto3

gw_client = boto3.client(
    'apigatewaymanagementapi',
    endpoint_url='https://abc123.execute-api.us-east-1.amazonaws.com/prod'
)

def lambda_handler(event, context):
    connection_id = event['requestContext']['connectionId']
    gw_client.post_to_connection(
        Data='{"type": "message", "text": "Hello!"}',
        ConnectionId=connection_id
    )

Perbandingan Fitur: REST vs HTTP vs WebSocket

Perbedaan utama secara ringkas:

  • API REST: fitur lengkap (caching, rencana penggunaan, transformasi, WAF), biaya lebih tinggi, mendukung semua jenis integrasi
  • API HTTP: hanya proksi Lambda/HTTP, 70% lebih murah, autentikasi JWT bawaan, latensi lebih rendah, tanpa caching atau rencana penggunaan
  • API WebSocket: koneksi dua arah yang persisten, mampu mendorong data dari server, ditagihkan per juta pesan dan per menit waktu koneksi

Untuk ujian SAA-C03: pertanyaan HTTP tanpa fitur waktu nyata atau lanjutan → API HTTP. Dorongan data waktu nyata → WebSocket. Fitur API yang kompleks → API REST.

Tahap dan Penerapan

API API Gateway diterapkan ke tahap (misalnya, dev, staging, prod). Setiap tahap memiliki URL dan pengaturan pembatasan lajunya sendiri, serta dapat merujuk ke snapshot penerapan tertentu. Gunakan variabel tahap (mirip dengan variabel lingkungan) untuk memparameterkan titik akhir backend per tahap—misalnya, arahkan tahap dev ke alias Lambda dev dan prod ke alias prod tanpa menggandakan konfigurasi API.

# REST API: create a deployment and stage
aws apigateway create-deployment \
  --rest-api-id 'abc123' \
  --stage-name 'prod'

# Set stage variable
aws apigateway update-stage \
  --rest-api-id 'abc123' \
  --stage-name 'prod' \
  --patch-operations 'op=replace,path=/variables/lambdaAlias,value=prod'

Nama Domain Khusus dan Pemetaan Jalur Dasar

Secara default, URL API Gateway berisi ID API (misalnya, abc123.execute-api.us-east-1.amazonaws.com). Untuk penggunaan produksi, buat nama domain khusus yang didukung oleh sertifikat ACM, lalu petakan ke API dan tahap Anda. Gunakan pemetaan jalur dasar untuk meng-host beberapa API di bawah satu domain (misalnya, api.example.com/orders → API Pesanan, api.example.com/users → API Pengguna). Nama domain khusus memerlukan catatan alias Route 53 yang mengarah ke titik akhir API Gateway.

API yang Dioptimalkan Edge vs Regional vs Privat

API REST dapat diterapkan dalam tiga jenis titik akhir: Dioptimalkan Edge (front-end CloudFront untuk distribusi global, sebagai default), Regional (tanpa CloudFront, latensi lebih rendah untuk klien di wilayah yang sama atau saat Anda menambahkan CloudFront sendiri), dan Privat (hanya dapat diakses dari dalam VPC melalui titik akhir VPC antarmuka, untuk layanan mikro internal). API HTTP mendukung Dioptimalkan Edge dan Regional. API WebSocket mendukung Regional dan Privat. Pilih Regional untuk API yang digunakan dari wilayah yang sama atau saat menggunakan distribusi CloudFront khusus.

Penerapan Canary dengan API Gateway

API REST API Gateway mendukung penerapan canary pada suatu tahap. Anda dapat merutekan persentase lalu lintas ke penerapan canary (versi baru), sementara sisanya menuju penerapan produksi. Pantau tingkat kesalahan dan latensi pada canary; jika stabil, promosikan ke 100%. Jika muncul masalah, lakukan pengembalian dengan menetapkan bobot canary ke 0. Hal ini serupa dengan perutean berbobot alias Lambda dan memungkinkan pembaruan API yang aman dan bertahap tanpa mengganti lingkungan secara blue/green.

Memilih Jenis API yang Tepat untuk Ujian

Kata kunci soal ujian SAA-C03 untuk mengenali jenis API: 'API sederhana yang hemat biaya' → API HTTP; 'dua arah waktu nyata' atau 'dorongan dari server' atau 'obrolan' → API WebSocket; 'transformasi permintaan', 'rencana penggunaan', 'pembatasan laju kunci API', 'caching tanggapan' → API REST. Jika pertanyaannya hanya 'mengekspos Lambda sebagai titik akhir HTTP dengan biaya rendah', API HTTP adalah pilihan yang tepat. Jika pertanyaannya melibatkan fitur pengelolaan API yang kompleks atau mitra, API REST biasanya merupakan jawaban yang benar.

Pemeriksaan Cepat

Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.

Rangkuman Pelajaran

Dalam pelajaran ini Anda mempelajari bahwa API REST menyediakan seluruh rangkaian fitur API Gateway (caching, transformasi, rencana penggunaan, WAF) dengan biaya lebih tinggi; API HTTP 70% lebih murah, memiliki autentikasi JWT bawaan dan latensi lebih rendah, sehingga ideal untuk skenario proksi Lambda/HTTP tanpa fitur lanjutan; dan API WebSocket memungkinkan komunikasi waktu nyata dengan dorongan dari server melalui koneksi persisten untuk aplikasi obrolan, permainan, dan data langsung. Berikutnya kita akan membahas integrasi API Gateway dengan Lambda, backend HTTP, dan tanggapan mock.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “REST API vs HTTP API vs WebSocket API” gratis?

Ya — teks lengkap “REST API vs HTTP API vs WebSocket API” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AWS Solutions Architect, upgrade ke CoddyKit PRO. Kursus AWS Solutions Architect mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “REST API vs HTTP API vs WebSocket API”?

Pahami pertukaran antara REST API (kaya fitur), HTTP API (latensi rendah dan biaya rendah), serta WebSocket API (dua arah), lalu pilih yang sesuai. Kamu berlatih AWS Solutions Architect dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AWS Solutions Architect?

Tidak diperlukan pengalaman sebelumnya. AWS Solutions Architect di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “REST API vs HTTP API vs WebSocket API” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AWS Solutions Architect ini?

Ya. Setiap pelajaran AWS Solutions Architect menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. REST API vs HTTP API vs WebSocket API
  2. Integrasi: Lambda, HTTP, dan Tiruan
  3. Otorisasi: IAM, Pemberi Otorisasi Lambda, dan Cognito
  4. Pembatasan, Penyimpanan Tembolok, dan Rencana Penggunaan
← Kembali ke AWS Solutions Architect