Cloud & IT Cert Prep · Pelajaran

API REST berbanding API HTTP berbanding API WebSocket

Fahami pertukaran antara API REST (kaya ciri), API HTTP (kependaman rendah dan kos rendah) serta API WebSocket (dua hala), kemudian pilih dengan sewajarnya.

Pelajaran 1 daripada 413 langkah

API REST berbanding API HTTP berbanding API WebSocket ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Sebab API Gateway Diwujudkan

Amazon API Gateway ialah perkhidmatan terurus sepenuhnya yang membolehkan anda mencipta, menerbitkan, melindungi dan memantau API pada apa-apa skala. Ia bertindak sebagai pintu hadapan untuk perkhidmatan bahagian belakang anda—fungsi Lambda, tika EC2, bahagian belakang HTTP atau mana-mana perkhidmatan AWS. API Gateway mengendalikan pengurusan trafik, kebenaran, pengehad kadar, pemantauan dan pemversian API, supaya bahagian belakang anda boleh menumpukan perhatian pada logik perniagaan dan bukannya kebimbangan infrastruktur API.

API REST: API Tradisional Kaya dengan Ciri

API REST (produk API Gateway asal) menyediakan set ciri yang paling luas: transformasi permintaan/tindak balas dengan templat pemetaan, pengehad kadar bagi setiap kaedah, pelan penggunaan dengan kunci API, pencachean tindak balas, integrasi WAF, penjejakan X-Ray, dasar sumber dan TLS bersama sijil klien. API REST menyokong semua jenis integrasi: Lambda, HTTP, perkhidmatan AWS, Mock dan Lambda Proxy. Gunakan API REST apabila anda memerlukan ciri lanjutan seperti transformasi, pencachean atau pelan penggunaan.

API HTTP: Alternatif Kependaman Rendah dan Kos Rendah

API HTTP direka bentuk sebagai alternatif yang lebih ringkas, murah dan pantas berbanding API REST. Ia hanya menyokong integrasi proksi Lambda dan proksi HTTP—tiada integrasi perkhidmatan AWS dan tiada Mock. Kelebihan utama: kos sehingga 70% lebih rendah berbanding API REST, kependaman lebih rendah, kebenaran JWT OIDC dan OAuth 2.0 terbina dalam secara asli (tiada pengesah Lambda diperlukan untuk senario pengesahan biasa) serta penggunaan automatik. Jika anda tidak memerlukan pencachean, pelan penggunaan atau transformasi permintaan/tindak balas, API HTTP ialah 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 Masa Nyata Dua Hala

API WebSocket mengekalkan sambungan berterusan dan dua hala antara klien dengan pelayan. Berbeza daripada HTTP (permintaan-tindak balas), WebSocket membolehkan pelayan menolak mesej kepada klien yang bersambung pada bila-bila masa tanpa klien melakukan tinjauan. API Gateway mengurus sambungan WebSocket dan menghalakan mesej kepada fungsi Lambda berdasarkan ungkapan laluan. Gunakan API WebSocket untuk aplikasi masa nyata: aplikasi sembang, papan pemuka langsung, penyuntingan kolaboratif, permainan dan penanda harga saham.

Laluan WebSocket dan Pengurusan Sambungan

API WebSocket mempunyai tiga laluan terbina dalam: $connect (dicetuskan apabila klien membuka sambungan), $disconnect (dicetuskan apabila sambungan ditutup) dan $default (menangkap mesej yang tidak sepadan). Anda boleh menambah laluan tersuai seperti sendmessage yang dipetakan kepada fungsi Lambda tertentu. Gunakan API pengurusan @connections untuk menghantar mesej kembali kepada klien yang bersambung daripada fungsi Lambda anda menggunakan ID sambungan 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 Ciri: REST berbanding HTTP berbanding WebSocket

Perbezaan utama secara ringkas:

  • API REST: ciri lengkap (pencachean, pelan penggunaan, transformasi, WAF), kos lebih tinggi, menyokong semua jenis integrasi
  • API HTTP: proksi Lambda/HTTP sahaja, 70% lebih murah, pengesahan JWT terbina dalam, kependaman lebih rendah, tiada pencachean atau pelan penggunaan
  • API WebSocket: sambungan dua hala berterusan, menyokong tolakan oleh pelayan, dicaj bagi setiap juta mesej dan setiap minit masa sambungan

Untuk peperiksaan SAA-C03: soalan HTTP tanpa ciri masa nyata atau lanjutan → API HTTP. Tolakan masa nyata → WebSocket. Ciri API yang kompleks → API REST.

Peringkat dan Penggunaan

API API Gateway digunakan pada peringkat (contohnya, dev, staging, prod). Setiap peringkat mempunyai URL dan tetapan pengehad kadar sendiri, serta boleh merujuk kepada petikan penggunaan tertentu. Gunakan pemboleh ubah peringkat (serupa dengan pemboleh ubah persekitaran) untuk menetapkan parameter titik akhir bahagian belakang bagi setiap peringkat—contohnya, arahkan peringkat dev kepada alias Lambda pembangunan dan prod kepada alias pengeluaran tanpa menduplikasi 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 Tersuai dan Pemetaan Laluan Asas

Secara lalai, URL API Gateway mengandungi ID API (contohnya, abc123.execute-api.us-east-1.amazonaws.com). Untuk kegunaan pengeluaran, cipta nama domain tersuai yang disokong oleh sijil ACM dan petakankannya kepada API serta peringkat anda. Gunakan pemetaan laluan asas untuk mengehoskan berbilang API di bawah satu domain (contohnya, api.example.com/orders → API Orders, api.example.com/users → API Users). Nama domain tersuai memerlukan rekod alias Route 53 yang menghala kepada titik akhir API Gateway.

API Dioptimumkan Edge berbanding Serantau berbanding Persendirian

API REST boleh digunakan dalam tiga jenis titik akhir: Dioptimumkan Edge (bahagian hadapan CloudFront untuk pengedaran global, lalai), Serantau (tanpa CloudFront, kependaman lebih rendah untuk klien di rantau yang sama atau apabila anda menambah CloudFront sendiri) dan Persendirian (hanya boleh diakses dari dalam VPC anda melalui titik akhir VPC antara muka, untuk perkhidmatan mikro dalaman). API HTTP menyokong Dioptimumkan Edge dan Serantau. API WebSocket menyokong Serantau dan Persendirian. Pilih Serantau untuk API yang digunakan dari rantau yang sama atau apabila menggunakan pengedaran CloudFront tersuai.

Penggunaan Canary dengan API Gateway

API REST API Gateway menyokong penggunaan canary pada sesuatu peringkat. Anda boleh menghalakan peratusan trafik kepada penggunaan canary (versi baharu), manakala selebihnya pergi kepada penggunaan pengeluaran. Pantau kadar ralat dan kependaman pada canary; jika stabil, naik tarafnya kepada 100%. Jika timbul masalah, buat pemulangan dengan menetapkan pemberat canary kepada 0. Kaedah ini serupa dengan penghalaan berwajaran alias Lambda dan membolehkan kemas kini API yang selamat dan beransur-ansur tanpa menukar persekitaran blue/green.

Memilih Jenis API yang Tepat untuk Peperiksaan

Kata kunci soalan peperiksaan SAA-C03 untuk mengenal pasti jenis API: 'API ringkas yang menjimatkan kos' → API HTTP; 'dua hala masa nyata' atau 'tolakan oleh pelayan' atau 'sembang' → API WebSocket; 'transformasi permintaan', 'pelan penggunaan', 'pengehad kunci API', 'pencachean tindak balas' → API REST. Apabila soalan hanya meminta anda 'mendedahkan Lambda sebagai titik akhir HTTP dengan kos rendah', API HTTP ialah pilihan yang tepat. Apabila soalan melibatkan ciri pengurusan API yang kompleks atau rakan kongsi, API REST biasanya betul.

Semakan Pantas

Uji pemahaman anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.

Ulang Kaji Pelajaran

Dalam pelajaran ini anda telah mempelajari bahawa: API REST menyediakan set ciri API Gateway yang lengkap (pencachean, transformasi, pelan penggunaan, WAF) pada kos yang lebih tinggi; API HTTP 70% lebih murah dengan pengesahan JWT terbina dalam dan kependaman lebih rendah, sesuai untuk senario proksi Lambda/HTTP tanpa ciri lanjutan; dan API WebSocket membolehkan komunikasi masa nyata dengan tolakan oleh pelayan melalui sambungan berterusan untuk aplikasi sembang, permainan dan data langsung. Seterusnya kita akan meneroka integrasi API Gateway dengan Lambda, bahagian belakang HTTP dan tindak balas Mock.

Percuma untuk bermula

Pelajari Cloud & IT Cert Prep dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
150
Pelajaran
600

Soalan Lazim

Adakah pelajaran “API REST berbanding API HTTP berbanding API WebSocket” percuma?

Ya — teks penuh “API REST berbanding API HTTP berbanding API WebSocket” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “API REST berbanding API HTTP berbanding API WebSocket”?

Fahami pertukaran antara API REST (kaya ciri), API HTTP (kependaman rendah dan kos rendah) serta API WebSocket (dua hala), kemudian pilih dengan sewajarnya. Anda berlatih Cloud & IT Cert Prep menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cloud & IT Cert Prep?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “API REST berbanding API HTTP berbanding API WebSocket” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. API REST berbanding API HTTP berbanding API WebSocket
  2. Penyepaduan: Lambda, HTTP dan Olok-olok
  3. Keizinan: IAM, Pemberi Kuasa Lambda dan Cognito
  4. Pendikitan, Cache dan Pelan Penggunaan
← Kembali ke Cloud & IT Cert Prep