مرحله 4: یک خط مشی اضافه کنید

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

اکنون که نقطه پایانی هدف خود را تغییر داده‌اید ، آماده‌اید تا یک سیاست به پروکسی خود اضافه کنید.

یک سیاست (policy) یک جزء Edge است که می‌توانید از طریق پروکسی‌های API خود به نقاط مختلف جریان پیام متصل کنید. سیاست‌ها می‌توانند قالب پیام‌ها را تغییر دهند، کنترل دسترسی را اعمال کنند، سرویس‌های از راه دور را فراخوانی کنند، به کاربران مجوز دهند، محتوای پیام را برای تهدیدات بالقوه بررسی کنند و کارهای بسیار بیشتری انجام دهند.

در این آموزش، شما قصد دارید سیاست XMLtoJSON را به پروکسی خود اضافه کنید. این سیاست، محتوای یک پیام XML را به JSON تبدیل می‌کند. همچنین هدر Content-Type پاسخ را تغییر می‌دهد.

برای افزودن سیاست XML به JSON به پروکسی خود:

  1. رابط کاربری Edge را در یک مرورگر باز کنید و وارد سیستم شوید.
  2. در پنجره اصلی روی API Proxies کلیک کنید و یک پروکسی انتخاب کنید. برای این مثال، پروکسی که در مرحله 1 ایجاد کردید را انتخاب کنید: ایجاد یک پروکسی API .
  3. روی برگه توسعه کلیک کنید:

    اج، ویرایشگر پروکسی API را نمایش می‌دهد.

  4. در پنل ناویگاتور ، روی Proxy Endpoints > default > PreFlow کلیک کنید:

    Edge ویرایشگر Flow را نمایش می‌دهد:

    علاوه بر این، Edge پیکربندی پیش‌فرض Proxy Endpoint را در قسمت Code نمایش می‌دهد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ProxyEndpoint name="default">
      <Description/>
      <FaultRules/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <Flows/>
      <HTTPProxyConnection>
        <BasePath>/getstarted</BasePath>
        <Properties/>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
      </HTTPProxyConnection>
      <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
      </RouteRule>
    </ProxyEndpoint>
  5. برای افزودن یک سیاست به پروکسی خود، روی دکمه + Step در PreFlow پاسخ (نیمه پایینی ویرایشگر Flow) کلیک کنید:

    اج فهرستی طبقه‌بندی‌شده از خط‌مشی‌ها را در کادر محاوره‌ای «افزودن» نمایش می‌دهد که می‌توانید به جریان خود اضافه کنید:

  6. به پایین اسکرول کنید و در بخش Mediation، پالیسی XML to JSON را انتخاب کنید.
  7. نام‌های پیش‌فرض را رها کنید و روی افزودن کلیک کنید.

    Edge سیاست جدید را به PreFlow پاسخ متصل می‌کند:

    توجه داشته باشید که وقتی روی افزودن کلیک می‌کنید، اج موارد زیر را انجام می‌دهد:

    • سیاست جدید را در بخش «سیاست‌ها» در پنل ناوبر اضافه می‌کند.
    • سیاست XML به JSON را در پنل Flow اضافه می‌کند.
    • فایل XML پیکربندی سیاست را در قسمت کد نمایش می‌دهد.
  8. برای ذخیره نسخه فعلی به همراه تغییرات خود، روی ذخیره کلیک کنید.

حالا امتحانش کن! در یک پنجره ترمینال، دستور curl زیر را اجرا کن:

curl https://org_name-test.apigee.net/getstarted

کجا:

روش دیگر، می‌توانید همان URL را در یک مرورگر باز کنید.

شما باید پاسخ زیر را دریافت کنید:

{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

اگر بدنه پاسخ به این شکل نیست، موارد زیر را بررسی کنید:

  1. نقطه پایانی هدف شما "https://mocktarget.apigee.net/xml" است، همانطور که در مرحله 3 توضیح داده شده است: نقطه پایانی هدف خود را تغییر دهید :
    • اگر به عنوان پاسخ "سلام، مهمان!" دریافت کردید، باید "/xml" را به انتهای نقطه پایانی هدف اضافه کنید.
    • اگر با خطای ۴۰۴ مواجه شدید، بررسی کنید که به آدرس "apigee.net" دسترسی دارید و نه "apigee.com".
  2. آخرین نسخه پروکسی شما مستقر شده است. همانطور که در بخش «استقرار و لغو استقرار پروکسی API» توضیح داده شده است، سعی کنید پروکسی API خود را دوباره مستقر کنید.

برای دیدن هدرهای درخواست و پاسخ HTTP، با استفاده از گزینه -vs ، قابلیت verbosity را در curl فعال کنید ( v باعث می‌شود پاسخ طولانی باشد، اما s برخی از جزئیات کم‌اهمیت‌تر را حذف می‌کند). برای مثال:

curl -vs https://ahamilton-eval-test.apigee.net/getstarted | python -m json.tool

شما باید پاسخی مانند زیر دریافت کنید. توجه داشته باشید که سرآیند Content-Type در پاسخ "application/json" است. سیاست XML to JSON قبل از ارسال پاسخ، سرآیند را تغییر می‌دهد.

*   Trying 10.20.30.40...
* TCP_NODELAY set
* Connected to ahamilton-eval-test.apigee.net (10.20.30.40) port 443 (#0)
...
> GET /getstarted HTTP/1.1
> Host: ahamilton-eval-test.apigee.net
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 25 May 2018 16:20:00 GMT
< Content-Type: application/json;charset=UTF-8
< Content-Length: 77
< Connection: keep-alive
< X-Powered-By: Apigee
< Access-Control-Allow-Origin: *
...
{ [77 bytes data]
{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

مرحله بعدی

عمیق‌تر برو