คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
โฟลว์เป็นองค์ประกอบพื้นฐานของพร็อกซี API ขั้นตอนช่วยให้คุณตั้งโปรแกรมลักษณะการทำงาน ของ API ได้โดยให้คุณกำหนดค่าลำดับที่ API จะดำเนินการกับนโยบายและโค้ด พร็อกซี
หากต้องการดูภาพรวมเชิงแนวคิดของโฟลว์ โปรดดูการควบคุมวิธีการทํางานของพร็อกซีกับ
หัวข้อนี้จะอธิบายวิธีสร้างขั้นตอนแบบมีเงื่อนไขและเพิ่มตรรกะ (นโยบาย) ให้กับโฟลว์ที่ ระดับสูง ศิลปะการสร้างเงื่อนไขเกี่ยวข้องกับรายละเอียดมากกว่าที่กล่าวถึงใน หัวข้อ สำหรับรายละเอียดดังกล่าว โปรดดูภาพรวมของขั้นตอน ตัวแปรและเงื่อนไข ด้วยตัวแปรโฟลว์
การแนบนโยบายกับโฟลว์
Edge มาพร้อมกับนโยบายที่กำหนดไว้ล่วงหน้าหลากหลายประเภทเพื่อใช้การรักษาความปลอดภัย การจัดการ รับส่งข้อมูล และจัดการข้อความ นอกจากนี้ นโยบายยังให้คุณเพิ่มโค้ดที่กำหนดเองลงใน ปรับแต่งการประมวลผลข้อความอย่างสมบูรณ์
เช่น
- แนบนโยบายความปลอดภัย OAuth กับ request PreFlow ของ ProxyEndpoint เนื่องจาก PreFlow ของคำขอ ProxyEndpoint เป็นโฟลว์แรกในไปป์ไลน์ ซึ่งคุณสามารถใช้ได้ทันที ปฏิเสธคำขอหากคำขอนั้นละเมิดนโยบายความปลอดภัยของคุณ
- แนบนโยบาย JSON กับการแปลง XML กับ Response PostFlow ของ TargetEndpoint เพื่อแปลง การตอบสนองจาก JSON เป็น XML
- แนบนโยบาย JavaScript ในเงื่อนไข โฟลว์ของ ProxyEndpoint เพื่อเรียกใช้โค้ด JavaScript เพื่อประมวลผล คำขอ
เมื่อสร้างขั้นตอนแบบมีเงื่อนไขแล้ว ขั้นตอนนี้จะพร้อมใช้งานในไฟล์แนบนโยบาย ลื่นไหล คลิกไอคอน + ขั้นตอนในแผนภาพคำขอหรือการตอบกลับเพื่อเพิ่ม นโยบายใหม่หรือนโยบายที่มีอยู่ เพื่อดำเนินการตามขั้นตอน
การแนบนโยบายกับขั้นตอนที่เลือกหมายความว่าคุณกำลังกำหนดค่าพร็อกซี API เพื่อบังคับใช้ นโยบายโควต้าเฉพาะสำหรับคำขอที่ส่งไปยังชุด 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 ตัวแปร ชื่อของตัวแปรโฟลว์คือการอ้างอิงที่มีข้อมูลสถานะเชื่อมโยงอยู่ ที่มีธุรกรรม 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
หากต้องการเพิ่มขั้นตอนแบบมีเงื่อนไข ให้เลือกแท็บพัฒนาในเครื่องมือสร้างพร็อกซี API
คลิกไอคอน + ในปลายทางที่ต้องการ
แบบฟอร์มโฟลว์แบบมีเงื่อนไขใหม่จะให้คุณตั้งชื่อขั้นตอนและกำหนดค่าเงื่อนไขได้ ใน
ตัวอย่างต่อไปนี้ ให้เพิ่มเงื่อนไขง่ายๆ ที่ประเมิน HTTP ของข้อความคำขอสำหรับ
กริยา GET
(ที่ไม่ใช่ PUT
, POST
ฯลฯ) ใน URI หลังเส้นทางฐาน
(เรียนรู้วิธีสร้างคำสั่งแบบมีเงื่อนไขในตัวแปรโฟลว์และ เงื่อนไข)
ขั้นตอนใหม่ที่เรียกว่า Flow-1 จะปรากฏในเมนูนำทาง
จากนั้นสังเกตการกำหนดค่า 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>
ขั้นตอนถัดไป
หัวข้อต่อไปนี้จะให้รายละเอียดเพิ่มเติมเกี่ยวกับการสร้างเงื่อนไขและการใช้ ตัวแปร: