ขั้นตอนที่ 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 > ค่าเริ่มต้น > ขั้นตอนเบื้องต้น:

    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 จะแสดงรายการนโยบายที่จัดหมวดหมู่ในกล่องโต้ตอบ Add ซึ่ง ก็เพิ่มลงในขั้นตอนได้เลย ดังนี้

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

    Edge จะแนบนโยบายใหม่กับ PreFlow ของการตอบกลับ

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

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

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

เจาะลึกมากขึ้น