شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
جریان ها بلوک های ساختمانی اصلی پروکسی های API هستند. جریانها به شما امکان میدهند رفتار یک API را برنامهریزی کنید و به شما اجازه میدهند دنبالهای را که در آن خطمشیها و کدها توسط یک پراکسی API اجرا میشوند، پیکربندی کنید.
برای یک نمای کلی مفهومی از جریانها، به کنترل نحوه اجرای یک پروکسی با جریانها مراجعه کنید.
این مبحث چگونگی ایجاد جریان های شرطی و افزودن منطق (سیاست ها) به جریان ها در سطح بالا را شرح می دهد. هنر ایجاد شرایط شامل جزئیات بیشتر از آنچه در این موضوع پرداخته شده است. برای این جزئیات، مروری بر متغیرهای جریان و شرایط با متغیرهای جریان را ببینید.
ضمیمه کردن سیاست ها به جریان ها
Edge با انواع مختلفی از سیاست های از پیش تعریف شده برای پیاده سازی امنیت، مدیریت ترافیک و دستکاری پیام ها ارائه می شود. علاوه بر این، سیاستها به شما امکان میدهند کد سفارشی خود را برای سفارشیسازی کامل پردازش پیام اضافه کنید.
به عنوان مثال:
- یک خط مشی امنیتی OAuth را به درخواست PreFlow از ProxyEndpoint پیوست کنید. از آنجایی که درخواست ProxyEndpoint PreFlow اولین جریان در خط لوله است، اگر درخواستی را نقض کند، می توانید بلافاصله آن را رد کنید.
- برای تبدیل پاسخ از JSON به XML، یک خط مشی تبدیل JSON به XML را به پاسخ PostFlow TargetEndpoint متصل کنید.
- برای اجرای کد جاوا اسکریپت برای پردازش درخواست، یک خط مشی جاوا اسکریپت را به جریان شرطی ProxyEndpoint ضمیمه کنید.
هنگامی که یک جریان مشروط ایجاد کردید، برای پیوست خط مشی در دسترس است. با انتخاب جریان، روی نماد + Step در نمودار درخواست یا پاسخ کلیک کنید تا یک خط مشی جدید یا موجود به جریان اضافه شود.
با پیوست کردن خط مشی به جریان انتخاب شده، پروکسی API را به گونه ای پیکربندی می کنید که خط مشی Quota را فقط برای درخواست های ارائه شده به آن URI جریان و ترکیب فعل اعمال کند. به عنوان مثال، اگر خط مشی را به جریان یادگیری در درخواست پیوست کنید، XML زیر در نمای کد ویرایشگر پروکسی ایجاد می شود:
<ProxyEndpoint name="default"> ... <Flow name="issue"> <Description/> <Request> <Step> <Name>Quota-2</Name> </Step> </Request> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition> </Flow> ... </ProxyEndpoint>
در این پیکربندی، اگر یک درخواست GET روی پراکسی API با الگوی URI ... /issue/** (/issue/ با هر چیزی در URI بعد از آخرین اسلش رو به جلو) وارد شود، سهمیه در آن فراخوانی API اعمال میشود. .
در مورد جریان های مشروط
هر خط مشی متصل به PreFlow یا PostFlow همیشه اجرا می شود. با این حال، سیاستها در یک جریان شرطی تنها در صورتی اجرا میشوند که شرایط جریان به درستی ارزیابی شود.
در طول پردازش یک درخواست و پاسخ، تنها یک جریان شرطی در هر بخش اجرا می شود - اولین جریانی که شرط آن درست ارزیابی می شود. این بدان معنی است که شما می توانید یک جریان شرطی را به عنوان بخشی از هر یک از موارد زیر اجرا کنید:
- خط لوله درخواست ProxyEndpoint
- خط لوله درخواست TargetEndpoint
- خط لوله پاسخ ProxyEndpoint
- خط لوله پاسخ TargetEndpoint
ویدئو: برای کسب اطلاعات بیشتر در مورد جریان های مشروط، ویدئوی کوتاهی را تماشا کنید.
به عنوان مثال، تعریف ProxyEndpoint زیر یک جریان شرطی را نشان می دهد که توسط ProxyEndpoint در هر درخواست HTTP GET
به پراکسی API اجرا می شود:
<ProxyEndpoint name="default"> <PreFlow> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Condition>request.verb="GET"</Condition> <Request/> <Response/> </Flow> </Flows> <PostFlow> <Request/> <Response/> </PostFlow> ... </ProxyEndpoint>
توجه داشته باشید که شرط به متغیر request.verb flow ارجاع می دهد. یک متغیر جریان به نام مراجعی گفته می شود که اطلاعات وضعیت مرتبط با یک تراکنش API پردازش شده توسط Edge را نگه می دارد. Edge متغیرهای حالت بسیاری را تعریف می کند که می توانید به آنها ارجاع دهید.
خدمات RESTful مجموعه ای از منابع API هستند. یک منبع API یک قطعه مسیر URI است که نهادی را شناسایی می کند که توسعه دهندگان می توانند با فراخوانی API شما به آن دسترسی داشته باشند. به عنوان مثال، اگر خدمات پشتیبان شما گزارش های آب و هوا و پیش بینی های آب و هوا را ارائه می دهد، API شما ممکن است دو جریان مشروط را تعریف کند که به آن منابع API نگاشت می شود: /reports
و /forecasts
. هنگامی که یک فراخوانی API شامل یکی از آن منابع در URL می شود، شرط به درستی ارزیابی می شود و منطق متصل به جریان شرطی اجرا می شود.
سپس توسعهدهندگان برنامه با درخواستهایی برای URL به این شکل به منابع شما دسترسی پیدا میکنند:
http://myAPIs.myCo.com/weather/reports
یا:
http://myAPIs.myCo.com/weather/forecasts
در یک پروکسی API، می توانید یک جریان شرطی را که مربوط به یک منبع خاص است تعریف کنید:
<ProxyEndpoint name="default"> <PreFlow> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition> <Request/> <Response/> </Flow> <Flow name="Flow-2"> <Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition> <Request/> <Response/> </Flow> </Flows> <PostFlow> <Request/> <Response/> </PostFlow> ... </ProxyEndpoint>
در این مثال، شما به متغیر جریان proxy.pathsuffix
اشاره میکنید که حاوی بخش پسوند URL مورد استفاده برای دسترسی به پراکسی API است. سپس می توانید خط مشی های مختلفی را به جریان مشروط برای هر منبع متصل کنید.
اضافه کردن یک جریان مشروط
در این مثال کوتاه، شما جریانی را تنظیم می کنید که فقط زمانی اجرا می شود که پیام درخواست HTTP GET باشد.
برای افزودن یک جریان شرطی، تب Develop را در سازنده پروکسی API انتخاب کنید.
روی نماد + در نقطه پایانی مورد نظر کلیک کنید.
فرم جریان مشروط جدید به شما امکان می دهد جریان را نامگذاری کنید و یک شرط را پیکربندی کنید. در مثال زیر، یک شرط ساده اضافه میکنید که HTTP پیام درخواست را برای یک فعل GET
(برخلاف PUT
، POST
و غیره) در هر URI بعد از مسیر پایه ارزیابی میکند.
(با نحوه ساخت عبارات شرطی در متغیرها و شرایط Flow آشنا شوید.)
جریان جدید به نام Flow-1 اکنون در منوی Navigator ظاهر می شود.
اکنون پیکربندی XML را برای ProxyEndpoint مشاهده کنید. Flow-1 را در منوی Navigator انتخاب کنید.
پیکربندی زیر را مشاهده خواهید کرد.
<PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Request/> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition> </Flow> </Flows> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow>
مراحل بعدی
عناوین زیر جزئیات بیشتری در مورد ساخت شرایط و استفاده از متغیرها ارائه می دهند: