ארכיטקטורה של 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 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, כולל נתונים שמועברים כחלק מהבקשה. תשובות משירות לקצה העורפי, כולל נתונים שהוחזרו על ידי השירות, מועברות בחזרה ללקוח.

בקשת מסלול

כשמתקבלת בקשה:

  1. ‫API Gateway יוצר אסימון מעקב ל-Cloud Trace.

  2. ‫API Gateway מתאים את הנתיב של הבקשות הנכנסות ל-API היעד. אחרי ש-API Gateway מוצא נתיב תואם, הוא מבצע את כל שלבי האימות עבור ה-API שצוין.

  3. אם נדרש אימות JWT, ‏ API Gateway מאמת את האימות באמצעות המפתח הציבורי המתאים של החותם, ומאמת את שדה הקהל ב-JWT. אם נדרש מפתח API, ‏ API Gateway קורא ל-Service Control API כדי לאמת את המפתח.

  4. מערכת Service Control API מחפשת את המפתח כדי לאמת אותו, ומוודאת שממשק ה-API הופעל בפרויקט שמשויך למפתח. אם המפתח לא תקין או שה-API לא הופעל בפרויקט, הקריאה נדחית והיא נרשמת ביומן באמצעות Service Control API.

  5. אם Service Control API מאמת את המפתח בהצלחה, הבקשה מועברת אל ה-backend יחד עם כל הכותרות המקוריות, בתוספת כותרת אימות JWT, אם רלוונטי.

  6. כשמתקבלת תגובה מהקצה העורפי, API Gateway מחזיר את התגובה למתקשר ושולח את פרטי התזמון הסופיים ל-Trace. נקודות הקריאה נרשמות ביומן על ידי Service Control API, שכותב מדדים ויומנים ליעדים המתאימים שלהם.

המאמרים הבאים