ขั้นตอนที่ 4: เพิ่มนโยบาย

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

เมื่อเปลี่ยนปลายทางเป้าหมายแล้ว คุณก็พร้อมที่จะเพิ่มนโยบายไปยังพร็อกซี

นโยบายคือคอมโพเนนต์ Edge ที่คุณแนบไว้กับจุดต่างๆ ในการส่งข้อความผ่านพร็อกซี API ได้ นโยบายอาจเปลี่ยนรูปแบบข้อความ บังคับใช้การควบคุมการเข้าถึง เรียกใช้บริการระยะไกล ให้สิทธิ์ผู้ใช้ ตรวจสอบเนื้อหาข้อความเพื่อดูภัยคุกคามที่อาจเกิดขึ้น และอื่นๆ อีกมากมาย

ในบทแนะนำนี้ คุณจะเพิ่มนโยบาย XMLtoJSON ในพร็อกซี นโยบายนี้แปลงเพย์โหลดของข้อความ XML เป็น JSON และยังเปลี่ยนส่วนหัว Content-Type ของการตอบกลับด้วย

วิธีเพิ่มนโยบาย XML ไปยัง JSON ในพร็อกซี

  1. เปิด Edge UI ในเบราว์เซอร์และเข้าสู่ระบบ
  2. คลิกพร็อกซี API ในหน้าต่างหลัก แล้วเลือกพร็อกซี สำหรับตัวอย่างนี้ ให้เลือกพร็อกซีที่คุณสร้างในขั้นตอนที่ 1: สร้างพร็อกซี API
  3. คลิกแท็บพัฒนา

    Edge จะแสดงเครื่องมือแก้ไขพร็อกซี API

  4. ในแผง Navigator ให้คลิก Proxy Endpoints > default > PreFlow ดังนี้

    Edge จะแสดงเครื่องมือแก้ไขโฟลว์ดังนี้

    นอกจากนี้ Edge จะแสดงการกำหนดค่าปลายทางพร็อกซีเริ่มต้นในแผงโค้ด ดังนี้

    <?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. หากต้องการเพิ่มนโยบายลงในพร็อกซี ให้คลิกปุ่ม + ขั้นตอนในการตอบสนอง PreFlow (ครึ่งล่างของเครื่องมือแก้ไขโฟลว์)

    Edge จะแสดงรายการนโยบายที่จัดหมวดหมู่ในกล่องโต้ตอบเพิ่มที่คุณเพิ่มลงในโฟลว์ได้ ดังนี้

  6. เลื่อนลงและเลือกนโยบาย XML เป็น JSON ในหมวดหมู่สื่อกลาง
  7. ปล่อยชื่อเริ่มต้นไว้ แล้วคลิกเพิ่ม

    Edge แนบนโยบายใหม่กับ PreFlow ของคำตอบ ดังนี้

    โปรดทราบว่าเมื่อคุณคลิกเพิ่ม Edge จะดำเนินการดังต่อไปนี้

    • เพิ่มนโยบายใหม่ในส่วน Policies ในแผง Navigator
    • เพิ่มนโยบาย XML ไปยัง JSON ในแผงโฟลว์
    • แสดง 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" ต่อท้ายปลายทางปลายทาง
    • หากคุณได้รับ 404 ให้ตรวจสอบว่าคุณเข้าถึง "apigee.net" ไม่ใช่ "apigee.com"
  2. ใช้งานพร็อกซีเวอร์ชันล่าสุดแล้ว ลองทำให้พร็อกซี API ใช้งานได้อีกครั้งตามที่อธิบายไว้ในการทำให้พร็อกซี API ใช้งานได้และยกเลิกการทำให้พร็อกซี API ใช้งานได้

หากต้องการดูคำขอ HTTP และส่วนหัวการตอบกลับ ให้เปิดใช้การพูดรายละเอียดใน curl ด้วยตัวเลือก -vs (v ทำให้การตอบกลับเป็นรายละเอียด แต่ s ระงับรายละเอียดบางอย่างที่น่าสนใจน้อยกว่า) เช่น

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

คุณควรได้รับการตอบกลับที่มีลักษณะดังต่อไปนี้ โปรดทราบว่าส่วนหัว Content-Type ในการตอบกลับคือ "application/json" นโยบาย XML เป็น 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"
  }
}

ขั้นตอนถัดไป

เจาะลึกยิ่งขึ้น