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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

כדי להפעיל סטרימינג של בקשות, צריך להוסיף את המאפיין 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 עם תכונת סטרימינג: