פריסת ממשקי Cloud Endpoints API ב-API Gateway
Cloud Endpoints היא מערכת לניהול ממשקי API שעוזרת לכם לאבטח את ממשקי ה-API, לעקוב אחריהם, לנתח אותם ולהגדיר להם מכסות. Endpoints משתמש ב-Extensible Service Proxy (ESP) או ב-Extensible Service Proxy V2 (ESPv2) כדי לארח את ממשקי ה-API.
כשמשתמשים ב-Endpoints, יש שלוש אפשרויות להגדרת ה-API:
- Cloud Endpoints for OpenAPI
- Cloud Endpoints for gRPC
- מסגרות Cloud Endpoints לסביבה הסטנדרטית של App Engine
פיתוח ממשקי API באמצעות API Gateway
גם Endpoints וגם API Gateway תומכים ב-API שמתוארים באמצעות מפרט OpenAPI, OpenAPI 2.0 או OpenAPI 3.x. אם השתמשתם ב-OpenAPI כדי להגדיר את ממשקי ה-API של Endpoints, תוכלו גם לפרוס את ממשקי ה-API של Endpoints ב-API Gateway.
פריסת מפרטי OpenAPI של Endpoints ב-API Gateway
API Gateway תומך באותו פורמט של הגדרות ומפרטים של OpenAPI כמו Cloud Endpoints for OpenAPI. כלומר, אתם יכולים להשתמש באותן הגדרות אבטחה, מכסות והגדרות אחרות ממפרטי OpenAPI של Endpoints כדי להגדיר API ב-API Gateway.
ההבדל היחיד בין Endpoints לבין API Gateway הוא האופן שבו הם מעבדים את המאפיין host בהגדרת מפרט OpenAPI:
- ב-Endpoints, מגדירים את המאפיין
hostלחלק של שם המארח בכתובת ה-URL שנוצרה כשפרסתם את ESP או ESPv2, כאשר ESP או ESPv2 הם השירות שמשמש לאירוח של Endpoints API. - ב-API Gateway, משמיטים את
hostאו מגדירים אותו לשם ה-DNS של ה-API שנפרס. ספקי API מגדירים אותו בדרך כלל לשם ה-DNS כשהם משתפים את מפרט ה-OpenAPI עם צרכני ה-API שלהם. עם זאת, API Gateway לא אוכף את הערך של המאפייןhost.
לדוגמה, הקטע הבא הוא חלק מהגדרת OpenAPI שמשמשת את Endpoints כדי להגדיר API לגישה לשירות לקצה העורפי שנפרס בפונקציות Cloud Run:
OpenAPI 2.0
swagger: '2.0' info: title: Cloud Endpoints + GCF description: Sample API on Cloud Endpoints with a Google Cloud Functions backend version: 1.0.0 host: HOST schemes: - https ...
OpenAPI 3.x
openapi: 3.0.4 info: title: Cloud Endpoints + GCF description: Sample API on Cloud Endpoints with a Google Cloud Functions backend version: 1.0.0 servers: - url: https://HOST x-google-endpoint: {} ...
מידע נוסף על יצירת מפרט OpenAPI להגדרת ה-API מופיע במאמר סקירה כללית על OpenAPI.