מהי מדיניות?

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

באמצעות Apigee Edge אפשר 'לתכנת' את ההתנהגות של ה-API בלי לכתוב קוד, באמצעות 'policies'. מדיניות היא כמו מודול שמטמיע פונקציית ניהול ספציפית ומוגבלת. כללי המדיניות נועדו לאפשר להוסיף ל-API סוגים נפוצים של יכולות ניהול, בקלות ובאופן מהימן. כללי המדיניות מספקים תכונות כמו אבטחה, הגבלת קצב, טרנספורמציה ותהליך בחירת הרשת (Mediation), שחוסכים לכם את הצורך לכתוב קוד ולתחזק את הפונקציונליות הזו בעצמכם.

אינך מוגבל לקבוצה של סוגי המדיניות שמסופקים על ידי Apigee Edge. אפשר גם לכתוב סקריפטים וקוד מותאמים אישית (כמו אפליקציות JavaScript ו-Node.js), שמרחיבים את הפונקציונליות של ממשק ה-API של שרת ה-proxy ומאפשרים לך לחדש את יכולות הניהול הבסיסיות שבהן נתמכות על ידי מדיניות Apigee.

בסרטון הבא ניתן לראות הסברים על קבצים מצורפים של המדיניות ועל אכיפה.

סוגי מדיניות

מבחינה טכנית, מדיניות היא קובץ תצורה בפורמט XML. המבנה של כל סוג מדיניות (לדוגמה, רכיבי התצורה הנדרשים והאופציונליים) מוגדר באמצעות סכימת XML. אם יש לך ניסיון בעבודה עם כלי XML, כדאי לך להכיר את סכימות המדיניות בקטע דוגמאות של פלטפורמת ה-API ב-GitHub.

סוגי מדיניות הקצה מקובצים לפי הקטגוריות הפונקציונליות הבאות:

ניהול טראפיק

כללי המדיניות בקטגוריית ניהול תעבורת הנתונים מאפשרים לשלוט בזרימה של ההודעות והבקשות שנשלחות באמצעות שרת proxy ל-API. כללי המדיניות האלה תומכים בבקרה גם ברמה התפעולית וגם ברמת העסק. הם מעניקים לך שליטה על התפוקה הגולמית, והם יכולים גם לשלוט על התנועה בכל אפליקציה בנפרד. סוגי המדיניות בנושא ניהול תעבורת נתונים מאפשרים לאכוף מכסות ועוזרים לצמצם התקפות של מניעת שירות (DoS).

אבטחה

כללי המדיניות בקטגוריית האבטחה תומכים באימות, בהרשאה ובאבטחה מבוססת תוכן.

גישור

המדיניות בקטגוריה של תהליך בחירת הרשת (Mediation) מאפשרת לטפל בהודעות באופן פעיל בזמן שהן עוברות דרך שרתי proxy של API. הם מאפשרים לך לשנות פורמטים של הודעות, מ-XML ל-JSON (ולהיפך), או להפוך פורמט XML אחד לפורמט XML אחר. הם גם מאפשרים לך לנתח הודעות, ליצור הודעות חדשות ולשנות ערכים של הודעות יוצאות. מדיניות תהליך בחירת הרשת גם פועלת בשילוב עם שירותים בסיסיים ששירותי API נחשפים, ומאפשרת לך לאחזר נתונים על אפליקציות, מפתחים, אסימוני אבטחה ומוצרי API בזמן ריצה.

תוסף

כללי המדיניות בקטגוריית התוספים מאפשרים לנצל את ההרחבה של שירותי API כדי להטמיע התנהגות מותאמת אישית בשפת התכנות שבחרתם.

כל סוג מדיניות מתועד בפירוט בסקירה הכללית של קובצי המדיניות. נושא זה מדגים אינטראקציה כללית, מראה לך כיצד ליצור מדיניות וכיצד לצרף אותם ל-flows בתצורה של שרת proxy של API.

פריסת השינויים במדיניות

כדי ששינויים במדיניות ייכנסו לתוקף, צריך לפרוס את הגרסה הקודמת של שרת ה-API של ה-API בסביבה. אחרי שמצרפים מדיניות או מבצעים שינויים במדיניות קיימת, צריך לפרוס את השינויים באמצעות ממשק המשתמש לניהול או ה-Management API.

אימות אכיפת המדיניות

כדי לוודא שהמדיניות נאכפת בצורה תקינה, צריך להפעיל את ה-API על ידי לקוח HTTP. כדי לאמת את הגדרת המכסה הזו, צריך לשלוח ל-API כמה בקשות, שחורגות ממגבלת המכסה שהגדרתם במדיניות המכסה. (נתיב ה-URI, שהוגדר כהגדרת הנתיב הבסיסי ב-ProxyEndpoint, בבקשה שלמטה הוא /weather).

http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282

אחרי ששולחים יותר מבקשה אחת תוך דקה, אמורה להופיע הודעת השגיאה הבאה:

{  
   "fault":{  
      "faultstring":"policies.ratelimit.QuotaViolation",
      "detail":{  
         "errorcode":"policies.ratelimit.QuotaViolation"
      }
   }
}

משמעות ההודעה היא שמדיניות המכסה נאכפת על ידי שירותי API.

טיפול בכשלים לפי מדיניות

יש לשים לב לפורמט של הודעת השגיאה שלמעלה. יש בו נכס faultstring ונכס errorcode. במקרים רבים צריך ליישם התנהגות מסוימת כדי לטפל בשגיאות האלה. לדוגמה, אפשר לשלוח הודעה מותאמת אישית למפתח שהאפליקציה שלו חרגה מהמכסה.

מידע נוסף על טיפול בפגמים זמין במאמר טיפול בפגמים.

שיטות מומלצות: קבוצות נפוצות של כללי מדיניות

כדי לעמוד בדרישות ניהול בסיסיות, שרתי proxy של API בדרך כלל אוכפים את כללי המדיניות הבאים:

אימות של מפתח API בסיסי

תהליך הבקשה של ProxyEndpoint:
  1. SpikeArrest
  2. XMLThreatProtection או JSONThreatProtection
  3. אימות מפתח API
  4. מכסה
  5. ResponseCache
תהליך התגובה של נקודת הקצה (ProxyEndpoint):
  1. ResponseCache

טרנספורמציה בסיסית: בין JSON ל-XML

תהליך הבקשה:
  1. SpikeArrest
  2. JSONThreatProtection
  3. אימות מפתח API
  4. מכסה
  5. JSONToXML
תהליך התשובה:
  1. XMLToJSON
  2. ResponseCache