סטרימינג של בקשות ותגובות

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

מה תלמדו בנושא הזה

אחרי שתקראו את הנושא הזה, תדעו את הפרטים הבאים:

  • מהו סטרימינג של בקשות ותגובות ב-Apigee
  • מתי כדאי להשתמש בהעברה בסטרימינג של בקשות ותגובות
  • איך מפעילים סטרימינג של בקשות ותשובות

מהו סטרימינג של בקשות ותגובות?

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

מתי כדאי להפעיל סטרימינג?

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

מה עוד חשוב לדעת על סטרימינג?

גודל המטען הייעודי (payload) של ההודעה מוגבל ל-30MB. בבקשות ובתגובות שלא מועברות בסטרימינג, חריגה מהגודל הזה גורמת לשגיאה protocol.http.TooBigBody.

נתונים מקודדים

כשהסטרימינג מופעל, Apigee לא מקודד או מפענח בקשות או תגובות לפני שהוא שולח אותן ללקוח שמתחבר ל-Apigee או לשרת יעד של קצה עורפי. מידע נוסף זמין בשורות request.streaming.enabled ו-response.streaming.enabled בטבלה מפרט מאפייני התעבורה של TargetEndpoint.

איך מפעילים סטרימינג של בקשות ותשובות

כדי להפעיל סטרימינג של בקשות, צריך להוסיף את המאפיין request.streaming.enabled להגדרות של ProxyEndpoint ו-TargetEndpoint בחבילת ה-proxy, ולהגדיר אותו לערך true. באופן דומה, מגדירים את המאפיין response.streaming.enabled כדי להפעיל סטרימינג של תגובות.

אפשר למצוא את קובצי ההגדרות האלה בממשק המשתמש של Apigee בתצוגת הפיתוח של ה-proxy. אם אתם מפתחים באופן מקומי, קובצי ההגדרה האלה נמצאים בנתיבים apiproxy/proxies וapiproxy/targets.

בדוגמה הזו מוצג איך להפעיל סטרימינג של בקשות ותגובות בהגדרה של TargetEndpoint.

<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
      <Property name="supports.http10">true</Property>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
  </HTTPTargetConnection>
</TargetEndpoint>

בדוגמה הזו אפשר לראות איך להפעיל סטרימינג של תגובות ובקשות בהגדרה של ProxyEndpoint:

<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="allow.http10">true</Property>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
  </HTTPProxyConnection>
</ProxyEndpoint>

מידע נוסף על הגדרת הגדרות של נקודות קצה זמין במאמר הפניה למאפייני נקודות קצה.

דוגמאות קוד קשורות

קל להוריד ולהשתמש בדוגמאות של שרתי proxy ל-API ב-GitHub.

דוגמאות לשרתי proxy עם תכונת סטרימינג: