הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
מה תלמדו בנושא הזה
אחרי שתקראו את הנושא הזה, תדעו:
- מהו סטרימינג של בקשות ותגובות ב-Apigee
- מתי כדאי להשתמש בהזרמה של בקשות ותגובות
- איך מפעילים סטרימינג של בקשות ותשובות
מהו סטרימינג של בקשות ותגובות?
כברירת מחדל, הסטרימינג של HTTP מושבת, ומטעני הנתונים של בקשות ותגובות HTTP נכתבים למאגר נתונים זמני בזיכרון לפני שהם מעובדים על ידי צינור העיבוד של ה-proxy ל-API. אפשר לשנות את ההתנהגות הזו על ידי הפעלת סטרימינג. כשהסטרימינג מופעל, מטעני בקשות ותגובות מועברים בסטרימינג ללא שינוי לאפליקציית הלקוח (עבור תגובות) ולנקודת הקצה של היעד (עבור בקשות).
מתי כדאי להפעיל סטרימינג?
אם ה-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 עם תכונות סטרימינג:
- streaming – הדגמה של שרת proxy ל-API שמוגדר לסטרימינג HTTP.
- הערה: מחולל כתובות URL חתומות – המחשה של שיטת העבודה המומלצת ליצירת כתובת URL חתומה כדי לגשת לקבצים גדולים, במקום לנסות להזרים אותם בבקשה/תגובה.