درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
جریانها واحدهای سازنده پایه در پراکسیهای API هستند. جریانها به شما امکان میدهند رفتار یک میانای برنامهسازی کاربردی را با پیکربندی توالی اجرای خطمشیها و کد توسط یک پراکسی میانای برنامهسازی کاربردی برنامهریزی کنید.
برای نمای کلی مفهومی از جاریسازیها، کنترل نحوه اجرای پراکسی با جاریسازیها را ببینید.
این موضوع نحوه ایجاد جریانهای شرطی و افزودن منطق (خطمشیها) به جریانها در سطح بالا را توضیح میدهد. هنر ایجاد شرایط شامل جزئیات بیشتری نسبتبه آنچه در این موضوع پوشش داده شده است میشود. برای آن جزئیات، نمای کلی متغیرهای جریان و شرایط با متغیرهای جریان را ببینید.
پیوست کردن خطمشیها به جریانها
Edge با انواع مختلفی از خطمشیهای ازپیش تعریفشده برای پیادهسازی امنیت، مدیریت ترافیک، و دستکاری پیامها ارائه میشود. علاوهبراین، خطمشیها به شما امکان میدهند کد سفارشی خودتان را به پردازش پیام کاملاً سفارشی اضافه کنید.
برای مثال:
- یک خطمشی امنیت OAuth به درخواست PreFlow از ProxyEndpoint پیوست کنید. ازآنجاییکه درخواست PreFlow نقطه پایانی پراکسی اولین جریان در خط لوله است، اگر درخواستی خطمشیهای امنیتی شما را نقض کند، میتوانید بلافاصله آن را رد کنید.
- یک خطمشی تبدیل JSON به XML به پاسخ PostFlow از TargetEndpoint پیوست کنید تا پاسخ را از JSON به XML تبدیل کنید.
- یک خطمشی JavaScript را به یک جریان شرطی از ProxyEndpoint پیوست کنید تا کد جاوا اسکریپت برای پردازش درخواست اجرا شود
پساز ایجاد یک جریان شرطی، این جریان برای پیوست خطمشی دردسترس است. با انتخاب جریان، روی نماد + مرحله در نمودار درخواست یا پاسخ کلیک کنید تا خطمشی جدید یا موجودی به جریان اضافه کنید.


با پیوست کردن خطمشی به جاریسازی انتخابشده، کارگزار نیابتی میانای برنامهسازی کاربردی را پیکربندی میکنید تا خطمشی «سهمیه» را فقط برای درخواستهایی که به ترکیب فعل و نشانی وب جاریسازی ارسال میشود اعمال کند. برای مثال، اگر خطمشی را به جریان یادگیری در درخواست پیوست کنید، 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 با الگوی نشانی وب .../issue/** (/issue/ با هر چیزی در نشانی وب پساز آخرین اسلش رو به جلو) در پراکسی API دریافت شود، سهمیه برای آن فراخوانی 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 شما به آن دسترسی پیدا کنند. برای مثال، اگر زیرینه سرویس شما گزارشهای آبوهوا و پیشبینیهای آبوهوا ارائه میدهد، میانای برنامهسازی کاربردی شما ممکن است دو
جریان شرطی را تعریف کند که به آن منابع میانای برنامهسازی کاربردی
نگاشت میشوند: /reports و /forecasts. وقتی یک فراخوانی API
یکی از آن منابع را در نشانی وب داشته باشد، شرط به درست ارزیابی میشود و منطق
پیوستشده به جریان شرطی اجرا میشود.
توسعهدهندگان برنامه سپس با ارسال درخواست به نشانی وب در قالب زیر به منابع شما دسترسی پیدا میکنند:
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 ارجاع میدهید،
که حاوی بخش پسوند نشانی وب استفادهشده برای دسترسی به پراکسی میانای برنامهسازی کاربردی است. سپس میتوانید
خطمشیهای مختلفی را به جریان شرطی برای هر منبع پیوست کنید.
درحال افزودن جریان شرطی
در این مثال کوتاه، جریانی راهاندازی میکنید که فقط وقتی پیام درخواست یک HTTP GET باشد اجرا میشود.
برای افزودن جاریسازی شرطی، برگه توسعه را در سازنده پراکسی API انتخاب کنید.

روی نماد + در نقطه پایانی موردنظر کلیک کنید.

فرم جریان شرطی جدید به شما امکان میدهد جریان را نامگذاری کنید و شرطی را پیکربندی کنید. در مثال زیر، شرط سادهای اضافه میکنید که HTTP پیام درخواست را برای فعل GET (درمقایسه با PUT، POST، و غیره) در هر نشانی وب پساز مسیر پایه ارزیابی میکند.

(با نحوه ساختن گزارههای شرطی در متغیرهای «جریان» و شرایط آشنا شوید.)
جریان جدید، که Flow-1 نامیده میشود، اکنون در منو «پیمایشگر» نشان داده میشود.

اکنون پیکربندی XML را برای ProxyEndpoint مشاهده کنید. در منو پیمایشگر، جریان-۱ را انتخاب کنید.
پیکربندی زیر را خواهید دید.
<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>مراحل بعدی
موضوعات زیر جزئیات بیشتری درباره ساختن شرایط و استفاده از متغیرها ارائه میدهند: