ארכיטקטורה של API Gateway
API Gateway היא מערכת לניהול ממשקי API שמספקת ניהול, מעקב ואימות של ממשקי ה-API. הרכיבים שמהם מורכב API Gateway כוללים:
- API Gateway: לניהול כל ההיבטים של API שנפרס
- Service Control API: להחלת כללים לניהול API
- Service Management: לניהול הגדרות ה-API
- ה-CLI של gcloud: לפריסה ולניהול של ממשקי ה-API
- Google Cloud console: לרישום ביומן, למעקב ולשיתוף
ארכיטקטורה
התרשים הבא הוא תרשים ברמה גבוהה של הרכיבים העיקריים שקשורים ל-API Gateway:
בתרשים הזה:
ספק ה-API אחראי ליצירה ולפריסה של API ב-API Gateway. כל API מוגדר על ידי קובץ שנכתב כמפרט OpenAPI 2.0 או OpenAPI 3.x.
במפרט OpenAPI מוגדרת כתובת ה-URL שפונה לציבור של נקודת הקצה של REST עבור ה-API, השירות לקצה העורפי שאליו ה-API ניגש וכל מאפיין אחר של ה-API, כמו אימות, פורמט נתונים ואפשרויות תגובה.
לקוח ה-API שולח בקשת REST ל-API שמארח ב-API Gateway כדי לגשת לשירותי קצה עורפי. לקוח API יכול להיות כל אפליקציה שיכולה לבצע קריאת REST, כמו דפדפן, אפליקציה לנייד או אפליקציית אינטרנט.
לקוח ה-API צריך לדעת רק את כתובת ה-URL של ה-API, את פועל הבקשה (כמו
GET,PUT,POST,DELETE), את דרישות האימות ואת הפורמט של הנתונים שנשלחים אל ה-API או מתקבלים ממנו.לקוח ה-API לא צריך לדעת שום דבר על הטמעת ה-Backend. למעשה, אפשר להגדיר API יחיד שמתארח ב-API Gateway כך שיגש למספר שרתי קצה עורפיים שונים על סמך מידע שמועבר בבקשה.
רכיבים של API Gateway
API Gateway
API Gateway מספק פתרון מנוהל לחלוטין לתשלום לפי שימוש לאירוח ממשקי API. API Gateway מספק גישה מאובטחת לשירותים לקצה העורפי דרך API בארכיטקטורת REST מוגדר היטב ועקבי בכל השירותים, ללא קשר לאופן השימוש בשירות
API Gateway משולב עם Google Cloud כך שתוכלו להשתמש באותם כלים לפיתוח, למעקב, לרישום ביומן ולמעקב אחר בקשות שבהם אתם משתמשים עם כל מוצר אחר של Google Cloud .
אם אתם מתחברים לשירות קצה עורפי שמתארח מחוץ ל- Google Cloud, אתם עדיין יכולים ליהנות מכל השירותים של Google Cloud , כולל שירותי האימות וההרשאה שמשמשים לשליטה בגישה לממשקי ה-API שלכם.
Service Control API
Service Control API מחיל כללי ניהול של API בזמן ריצה, כמו אימות מפתח API, מעקב ורישום ביומן. ב-Service Control זמינות השיטות הבאות:
- בדיקה: מאמתת את מפתחות ה-API והאימות, ומציינת אם יש לאפשר את הקריאה
- דיווח: הודעה למערכות התיעוד לצורך רישום ביומן ומעקב
Service Management API
משתמשים במפרט OpenAPI כדי להגדיר את ה-API. לאחר מכן משתמשים ב-CLI של gcloud כדי להעלות את מפרט OpenAPI אל Service Management, וכך נוצרת הגדרת ה-API. כאן מתבצעות גם משימות אחרות שקשורות להגדרות, כמו שיתוף ה-API עם מפתחים אחרים, הפעלה או השבתה של ה-API בפרויקטים שונים ויצירה של מפתחות API.
CLI של gcloud
ה-CLI של gcloud מספק את כלי שורת הפקודה gcloud שבעזרתו אפשר לבצע קריאות לשירותים שונים של Google Cloud . משתמשים ב-Google Cloud CLI כדי להעלות את מפרט OpenAPI, שיוצר את הגדרת ה-API, ואז כדי לפרוס את הגדרת ה-API ב-API Gateway.
מסוף Cloud
מסוףGoogle Cloud הוא ממשק המשתמש הגרפי של מסוף Google Cloud . משתמשים במסוף Google Cloud כדי לחשוף נתוני מעקב ורישום ביומן שנרשמו על ידי Service Control API, כדי להגדיר אימות והרשאה, וכדי שמפתחים יוכלו ליצור מפתחות API כדי לקרוא ל-API.
טיפול בבקשת API
בהגדרת API יש שני סוגים של נקודות קצה:
- נקודת קצה ל-API: מגדירה את נקודת הקצה שזמינה לציבור, שבה הלקוחות משתמשים כדי לצרוך את ממשקי ה-API שלכם.
- נקודת קצה (endpoint) של קצה עורפי: מגדירה את נקודת הקצה שבה ה-API משתמש כדי להתחבר לשירות הקצה העורפי. הגדרות האבטחה, כמו גישה ל-HTTP או ל-HTTPS, מוגדרות על ידי ההטמעה של השירות לקצה העורפי.
בקשות לנקודת קצה ל-API מועברות לנקודת הקצה של ה-Backend, כולל נתונים שמועברים כחלק מהבקשה. תשובות משירות לקצה העורפי, כולל נתונים שהוחזרו על ידי השירות, מועברות בחזרה ללקוח.
בקשת מסלול
כשמתקבלת בקשה:
API Gateway יוצר אסימון מעקב ל-Cloud Trace.
API Gateway מתאים את הנתיב של הבקשות הנכנסות ל-API היעד. אחרי ש-API Gateway מוצא נתיב תואם, הוא מבצע את כל שלבי האימות עבור ה-API שצוין.
אם נדרש אימות JWT, API Gateway מאמת את האימות באמצעות המפתח הציבורי המתאים של החותם, ומאמת את שדה הקהל ב-JWT. אם נדרש מפתח API, API Gateway קורא ל-Service Control API כדי לאמת את המפתח.
מערכת Service Control API מחפשת את המפתח כדי לאמת אותו, ומוודאת שממשק ה-API הופעל בפרויקט שמשויך למפתח. אם המפתח לא תקין או שה-API לא הופעל בפרויקט, הקריאה נדחית והיא נרשמת ביומן באמצעות Service Control API.
אם Service Control API מאמת את המפתח בהצלחה, הבקשה מועברת אל ה-backend יחד עם כל הכותרות המקוריות, בתוספת כותרת אימות JWT, אם רלוונטי.
כשמתקבלת תגובה מהקצה העורפי, API Gateway מחזיר את התגובה למתקשר ושולח את פרטי התזמון הסופיים ל-Trace. נקודות הקריאה נרשמות ביומן על ידי Service Control API, שכותב מדדים ויומנים ליעדים המתאימים שלהם.