Agar API Anda dikelola oleh Cloud Endpoints, Anda memiliki tiga opsi, bergantung pada tempat API Anda dihosting dan jenis protokol komunikasi yang digunakan API Anda:
- Cloud Endpoints untuk OpenAPI
- Cloud Endpoints untuk gRPC
- Framework Cloud Endpoints untuk lingkungan standar App Engine
Halaman ini menjelaskan opsi Endpoint untuk membantu Anda memutuskan opsi mana yang tepat untuk Anda.
Memilih opsi komputasi
Endpoints mendukung berbagai opsi komputasi yang dapat menghosting kode backend API Anda. Google CloudEndpoints berfungsi dengan Extensible Service Proxy (ESP) atau Extensible Service Proxy V2 (ESPv2) untuk menyediakan pengelolaan API. Tabel berikut merangkum opsi komputasi yang didukung:
| ESP untuk OpenAPI | ESP untuk gRPC | ESPv2 untuk OpenAPI | ESPv2 untuk gRPC | Framework Endpoints | |
|---|---|---|---|---|---|
| App Engine generasi 1 lingkungan standar |
Runtime Java 8 dan Python 2.7 | ||||
| App Engine lingkungan standar generasi 2 |
|||||
| Lingkungan fleksibel App Engine |
|||||
| Cloud Run Functions | |||||
| Cloud Run | |||||
| Inferensi Knative | |||||
| Compute Engine | |||||
| GKE | |||||
| Kubernetes | |||||
| Non-Google Cloud lainnya |
Untuk perbandingan fitur yang disediakan oleh App Engine, GKE, dan Compute Engine, lihat Memilih opsi komputasi. Jika ingin menggunakan App Engine, Anda harus memilih lingkungan standar atau fleksibel. Untuk mengetahui perbandingan kedua lingkungan, lihat Memilih lingkungan App Engine.
Tentang batasan opsi komputasi
Endpoints untuk OpenAPI dan Endpoints untuk gRPC dapat menggunakan ESP atau ESPv2 sebagai proxy. Untuk platform non-serverless, ESP atau ESPv2 di-deploy sebagai container di depan aplikasi Anda atau sebagai sidecar dengan aplikasi Anda. Untuk platform serverless, seperti Cloud Run, fungsi Cloud Run, dan App Engine, ESPv2 di-deploy sebagai layanan Cloud Run sebagai proxy jarak jauh untuk mengelola aplikasi platform serverless Anda.
Setelah Anda men-deploy kode backend API, ESP atau ESPv2 akan mencegat semua permintaan dan melakukan pemeriksaan yang diperlukan (seperti autentikasi) sebelum meneruskan permintaan ke backend API. Saat backend merespons, ESP mengumpulkan dan melaporkan telemetri menggunakan Infrastruktur Layanan.
Anda dapat melihat metrik untuk API dan link ke log dan rekaman aktivitas Google Cloud Observability di halaman Layanan Endpoint di konsolGoogle Cloud .
Batasan lingkungan generasi 1 standar App Engine
Endpoints untuk lingkungan App Engine standar generasi 1 sebelumnya menggunakan Framework Endpoints, yang hanya mendukung lingkungan runtime Java 8 dan Python 2.7.
Karena lingkungan standar App Engine tidak mendukung deployment multi-penampung saat Endpoints Frameworks sedang dikembangkan, Endpoints Frameworks tidak menggunakan ESP. Sebagai gantinya, Endpoints Frameworks menyertakan gateway API bawaan yang menyediakan fitur pengelolaan API yang sebanding dengan fitur yang disediakan ESP untuk Endpoints for OpenAPI dan Endpoints for gRPC.
API gRPC tidak didukung di App Engine atau Cloud Run Functions
gRPC adalah framework remote procedure call (RPC) yang dapat berjalan di lingkungan apa pun. Dengan gRPC, aplikasi klien dapat langsung memanggil metode di aplikasi server pada mesin yang berbeda seolah-olah itu adalah objek lokal. Fitur inti gRPC adalah streaming dua arah dengan transport berbasis HTTP/2.
Fungsi App Engine dan Cloud Run tidak mendukung HTTP/2.
Bahasa pemrograman yang didukung
- Spesifikasi OpenAPI adalah spesifikasi yang tidak bergantung pada bahasa. Anda dapat menerapkan API dalam bahasa pemrograman apa pun.
- gRPC menyediakan
compiler buffer protokol,
protoc, untuk banyak bahasa pemrograman utama: C++, C#, Objective-C (untuk iOS), Dart, Go, Java (termasuk dukungan untuk Android), Node.js, Python, dan Ruby. Lihat FAQ gRPC untuk mengetahui daftar terbaru. - Endpoints Frameworks hanya mendukung Java 8 dan Python 2.7.
Mendeskripsikan API Anda
Opsi Endpoint menyediakan berbagai cara untuk mendeskripsikan API Anda.
Endpoints untuk OpenAPI
OpenAPI Initiative adalah upaya di seluruh industri untuk menstandardisasi deskripsi REST API. Endpoints mendukung API yang dijelaskan menggunakan OpenAPI 2.0 dan OpenAPI 3.x dari Spesifikasi OpenAPI (sebelumnya Spesifikasi Swagger). Untuk mempelajari lebih lanjut, lihat Versi OpenAPI yang didukung. Anda mendeskripsikan tampilan API Anda dalam file JSON atau YAML (disebut sebagai dokumen OpenAPI). Anda dapat menerapkan API menggunakan framework REST yang tersedia secara publik seperti Django atau Jersey. Jika Anda belum memahami Spesifikasi OpenAPI, lihat Ringkasan OpenAPI.
Untuk mengetahui informasi selengkapnya, lihat Endpoint untuk OpenAPI.
Endpoint untuk gRPC
Dengan gRPC, Anda menentukan struktur data yang ingin Anda serialisasi dalam
file proto: ini adalah file teks biasa dengan ekstensi .proto. Anda juga
menentukan
surface
API Anda dalam file proto, dengan parameter metode RPC dan jenis yang ditampilkan
ditentukan sebagai pesan buffer protokol. Jika Anda belum memahami gRPC, lihat
Apa itu gRPC?
di dokumentasi gRPC.
Untuk mengetahui informasi selengkapnya, lihat Endpoint untuk gRPC.
Framework Endpoints
Framework Endpoints adalah framework web untuk lingkungan runtime Python 2.7 dan Java 8 standar App Engine. Anda menambahkan metadata (menggunakan anotasi di Java atau dekorator di Python) ke kode sumber. Metadata menjelaskan platform REST API untuk aplikasi Anda.
Untuk mengetahui informasi selengkapnya, lihat Framework Endpoint.
Langkah berikutnya
Lihat cara kerja fitur Endpoints dengan melakukan Panduan memulai untuk Endpoints, yang menggunakan skrip untuk men-deploy contoh API ke lingkungan fleksibel App Engine.
Pahami langkah-langkah deployment dengan melakukan salah satu tutorial untuk opsi Endpoints yang telah Anda pilih:
Pelajari Endpoint dan ESP lebih lanjut: