การใช้ตัวแปรโฟลว์

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

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

ตัวแปรโฟลว์คืออะไร

ตัวแปรโฟลว์มีอยู่ในบริบทของโฟลว์พร็อกซี API และตัวแปรติดตามสถานะใน API ทำธุรกรรมในแบบที่ตัวแปรที่มีชื่อติดตามสถานะในโปรแกรมซอฟต์แวร์ ที่จัดเก็บตัวแปรโฟลว์ ข้อมูล เช่น

  • ที่อยู่ IP, ส่วนหัว, เส้นทาง URL และเพย์โหลดที่ส่งจากแอปที่ขอ
  • ข้อมูลระบบ เช่น วันที่และเวลาที่ Edge ได้รับคำขอ
  • ข้อมูลที่ได้มาเมื่อนโยบายทำงาน ตัวอย่างเช่น หลังจากการบังคับใช้นโยบายที่ตรวจสอบ โทเค็น OAuth Edge จะสร้างตัวแปรโฟลว์ที่เก็บข้อมูล เช่น ชื่อของคำขอ แอปพลิเคชัน
  • ข้อมูลเกี่ยวกับการตอบสนองจากระบบเป้าหมาย

ตัวแปรบางตัวเป็น "ในตัว" ไปยัง Edge และสร้างโดยอัตโนมัติทุกครั้งที่มีคำขอ API วันที่ได้รับ ซึ่งมีให้บริการตลอดการทำธุรกรรม API คุณยังสร้างชิ้นงาน ตัวแปรที่กำหนดเองโดยใช้นโยบาย เช่น AssignMessage policy หรือใน JavaScript, Node.js และ โค้ด Java

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

มีการใช้ตัวแปรโฟลว์อย่างไร

ตัวแปรโฟลว์จะใช้ในนโยบายและขั้นตอนแบบมีเงื่อนไขดังนี้

  • นโยบายสามารถดึงสถานะจากตัวแปรโฟลว์และนำไปใช้เพื่อดำเนินการ งาน

    เช่น นโยบาย VerifyJWT สามารถเรียกข้อมูลโทเค็นที่จะยืนยันได้ ตัวแปรโฟลว์ แล้วทำการยืนยัน อีกตัวอย่างหนึ่งคือ นโยบาย JavaScript สามารถเรียกตัวแปรโฟลว์และเข้ารหัสข้อมูลที่อยู่ภายใน ตัวแปรเหล่านั้น

  • ขั้นตอนแบบมีเงื่อนไขอ้างอิงตัวแปรของโฟลว์เพื่อกำหนดโฟลว์ของ API ได้ ผ่าน Edge เหมือนกับวิธีการทำงานของคำสั่ง Switch ในการเขียนโปรแกรม

    ตัวอย่างเช่น นโยบายที่จะแสดงผลข้อผิดพลาดอาจทำงานเฉพาะเมื่อตัวแปรโฟลว์หนึ่งๆ คือ ตั้งค่า สุดท้าย คุณสามารถรับและตั้งค่าตัวแปรโฟลว์ในแอปพลิเคชันเป้าหมาย Node.js ได้

เรามาดูตัวอย่างการใช้ตัวแปรในบริบทต่างๆ เหล่านี้กัน

ตัวแปรโฟลว์ในนโยบาย

นโยบายบางอย่างจะดำเนินการ เป็นอินพุต

ตัวอย่างเช่น นโยบายAssignMessage ต่อไปนี้ ค่าของตัวแปรโฟลว์ client.ip แล้วใส่ไว้ในส่วนหัวของคำขอ ที่ชื่อ My-Client-IP นโยบายนี้จะกำหนดส่วนหัวหากเพิ่มลงในขั้นตอนคำขอ ที่ส่งไปยังเป้าหมายแบ็กเอนด์ หากตั้งค่าไว้ในขั้นตอนการตอบกลับ ระบบจะส่งส่วนหัว กลับไปที่แอปไคลเอ็นต์

<AssignMessage name="set-ip-in-header">
    <AssignTo createNew="false" transport="http" type="request">request</AssignTo>
    <Set>
        <Headers>
            <Header name="My-Client-IP">{client.ip}</Header>
        </Headers>
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</AssignMessage>

อีกตัวอย่างหนึ่งคือ เมื่อดำเนินนโยบายโควต้า ระบบจะเติมค่าตัวแปรของโฟลว์หลายรายการ ด้วยค่าที่เกี่ยวข้องกับนโยบาย หนึ่งในตัวแปรเหล่านี้คือ ชื่อว่า ratelimit.my-quota-policy.used.count (โดยที่ my-quota-policy คือ ชื่อของนโยบายโควต้าที่คุณสนใจ)

คุณอาจเรียกใช้ขั้นตอนแบบมีเงื่อนไขในภายหลังได้ ที่ระบุว่า "หากจำนวนโควต้าปัจจุบันต่ำกว่า 50% ของขีดจำกัดสูงสุด และอยู่ระหว่าง 9.00-17.00 น. บังคับใช้โควต้าอื่น" เงื่อนไขนี้อาจขึ้นอยู่กับค่าของจำนวนโควต้าปัจจุบัน และในตัวแปรโฟลว์ชื่อ system.time ซึ่งเป็นหนึ่งใน Edge ในตัว ตัวแปร

ตัวแปรโฟลว์ในเงื่อนไข โฟลว์

ขั้นตอนแบบมีเงื่อนไข ประเมินตัวแปรโฟลว์และช่วยให้พร็อกซีทำงานแบบไดนามิก โดยทั่วไปจะใช้เงื่อนไข เพื่อเปลี่ยนลักษณะการทำงานของกฎขั้นตอน ขั้นตอน และกฎเส้นทาง

ต่อไปนี้เป็นขั้นตอนแบบมีเงื่อนไขที่จะประเมิน ค่าของตัวแปร request.verb ในขั้นตอนโฟลว์พร็อกซี ในกรณีนี้ หาก กริยาคำขอคือ POST ระบบจะดำเนินการตามนโยบาย VerifyAPIKey ซึ่งเป็นรูปแบบทั่วไปที่ใช้ใน การกำหนดค่าพร็อกซี API

<PreFlow name="PreFlow">
    <Request>
        <Step>
            <Condition>request.verb equals "POST"</Condition>
            <Name>VerifyApiKey</Name>
        </Step>
    </Request>
</PreFlow>

คุณอาจสงสัยว่าตัวแปรอย่าง request.verb อยู่ที่ไหน มาจาก client.ip และ system.time มาจากที่ไหน มีการสร้างอินสแตนซ์และ ด้วยค่าหรือไม่ เพื่อช่วยให้คุณทราบว่ามีการสร้างตัวแปรเมื่อใดและเมื่อใด ที่ใช้ได้ โปรดดูการทำความเข้าใจตัวแปรโฟลว์

ตัวแปรโฟลว์ในโค้ด JavaScript ที่เรียกใช้ด้วย JavaScript นโยบาย

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

context.setVariable("response.header.X-Apigee-Target", context.getVariable("target.name"));

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

ตัวแปรโฟลว์ในโค้ด Node.js

เมื่อต้องใช้โมดูล apigee-access คุณจะตั้งค่าและเข้าถึงตัวแปรโฟลว์ได้จาก ภายในโค้ด Node.js ที่มีการทำให้ใช้งานได้ใน Edge

ต่อไปนี้เป็นตัวอย่างง่ายๆ ที่มีการตั้งค่าตัวแปร custom.foo เป็นค่า Bar เมื่อตั้งค่าแล้ว ตัวแปรใหม่นี้จะใช้กับนโยบายทั้งหมดหรือโค้ดอื่นๆ ที่เกิดขึ้นในโฟลว์พร็อกซีหลังจากที่โค้ด Node.js ประมวลผล

var http = require('http');
var apigee = require('apigee-access');

http.createServer(function (request, response) {
  apigee.setVariable(request, "custom.foo", "Bar");
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');

อ่านเพิ่มเติมเกี่ยวกับการใช้ apigee-access เพื่อทำงานกับตัวแปรได้ในการเข้าถึงตัวแปรโฟลว์ใน Node.js

ทําความเข้าใจขอบเขตของตัวแปรโฟลว์

ขอบเขตตัวแปรเกี่ยวข้องกับโฟลว์หรือ "วงจร" โดยรวม ของพร็อกซี API การโทร

การแสดงภาพขั้นตอนของพร็อกซี API

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

ภาพต่อไปนี้แสดงลำดับขั้นตอนดังกล่าว โปรดสังเกตว่าขั้นตอนประกอบด้วย กลุ่มหลัก 4 กลุ่ม ได้แก่ ProxyEndpoint request, TargetEndpoint request การตอบกลับ TargetEndpoint และการตอบกลับ ProxyEndpoint

โปรดคำนึงถึงโครงสร้างโฟลว์นี้เมื่อเราเริ่มสำรวจตัวแปรโฟลว์ผ่านส่วนที่เหลือของ หัวข้อนี้

ขอบเขตตัวแปรเกี่ยวข้องกับโฟลว์พร็อกซีอย่างไร

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

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

ตารางต่อไปนี้แสดงชุดขอบเขตตัวแปรทั้งหมดและระบุเมื่ออยู่ในพร็อกซี ทำให้พร้อมใช้งาน

ขอบเขตตัวแปร ตำแหน่งที่ตัวแปรเหล่านี้ถูกป้อน
คำขอพร็อกซี กลุ่มคำขอ ProxyEndpoint
คำขอเป้าหมาย กลุ่มคำขอ TargetEndpoint
การตอบสนองเป้าหมาย กลุ่มการตอบกลับ TargetEndpoint
การตอบสนองของพร็อกซี กลุ่มการตอบสนอง ProxyEndpoint
พร้อมใช้งานเสมอ ทันทีที่พร็อกซีได้รับคำขอ ตัวแปรเหล่านี้มีอยู่ใน ทุกขั้นตอนของโฟลว์พร็อกซี

เช่น มีตัวแปร Edge ในตัวชื่อ client.ip ตัวแปรนี้มี "คำขอพร็อกซี" ระบบจะป้อนข้อมูลที่อยู่ IP ของไคลเอ็นต์โดยอัตโนมัติ ที่เรียกพร็อกซี ระบบจะป้อนข้อมูลเมื่อคำขอเข้าถึง ProxyEndpoint เป็นครั้งแรกและยังคง ที่ใช้ได้ตลอดวงจรโฟลว์พร็อกซี

มีตัวแปรบิวท์อินอีกตัวหนึ่งชื่อว่า target.url ขอบเขตของตัวแปรนี้คือ "คำขอเป้าหมาย" ซึ่งสร้างขึ้นในกลุ่มคำขอ TargetEndpoint ด้วย URL คำขอที่ส่งไปแล้ว กับเป้าหมายแบ็กเอนด์ หากคุณพยายามเข้าถึง target.url ในคำขอ ProxyEndpoint คุณจะได้รับค่าว่าง หากคุณพยายามตั้งค่าตัวแปรนี้ก่อนที่จะอยู่ในขอบเขต พร็อกซีไม่ทำอะไรเลย ไม่สร้างข้อผิดพลาดและไม่ได้ตั้งค่าตัวแปร

ต่อไปนี้เป็นตัวอย่างง่ายๆ ที่สาธิตวิธีคิดเกี่ยวกับขอบเขตตัวแปร สมมติว่า เพื่อคัดลอกเนื้อหาทั้งหมดของอ็อบเจกต์คำขอ (ส่วนหัว พารามิเตอร์ เนื้อความ) และมอบหมายให้กับ เพย์โหลดการตอบสนองที่จะส่งกลับไปยังแอปการโทร คุณสามารถใช้นโยบาย AssignmentsMessage สำหรับ งานนี้ โค้ดนโยบายมีลักษณะดังนี้

<AssignMessage name="CopyRequestToResponse">
    <AssignTo type="response" createNew="false">response</AssignTo>
    <Copy source="request"/>
</AssignMessage>

นโยบายนี้เพียงคัดลอกออบเจ็กต์ request และมอบหมายให้กับ response ออบเจ็กต์ แต่ควรวางนโยบายนี้ไว้ที่ใดในขั้นตอนการทำงานของพร็อกซี คำตอบคือจะต้องวางไว้บนการตอบสนองของ TargetEndpoint เนื่องจากขอบเขตของ ตัวแปรการตอบกลับคือ "การตอบกลับเป้าหมาย"

การอ้างอิงตัวแปรโฟลว์

ตัวแปรบิวท์อินทั้งหมดใน Apigee Edge เป็นไปตามรูปแบบการตั้งชื่อสัญลักษณ์จุด การประชุมนี้ ทำให้ระบุวัตถุประสงค์ของตัวแปรได้ง่ายขึ้น ตัวอย่างเช่น system.time.hour และ request.content

Apigee จะสงวนคำนำหน้าที่หลากหลายเพื่อจัดระเบียบตัวแปรที่เกี่ยวข้องอย่างเหมาะสม คำนำหน้าเหล่านี้ รวมข้อมูลต่อไปนี้

  • request
  • response
  • system
  • target

หากต้องการอ้างอิงตัวแปรในนโยบาย ให้ล้อมรอบตัวแปรไว้ในวงเล็บปีกกา ตัวอย่างเช่น นโยบาย AssignMessage ต่อไปนี้จะใช้ค่าของตัวแปร client.ip และ ใส่ไว้ในส่วนหัวของคำขอที่ชื่อ Client-IP

<AssignMessage name="set-ip-in-header">
    <AssignTo createNew="false" transport="http" type="request">request</AssignTo>
    <Set>
        <Headers>
            <Header name="Client-IP">{client.ip}</Header>
        </Headers>
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</AssignMessage>

ในขั้นตอนแบบมีเงื่อนไข ไม่จำเป็นต้องใช้วงเล็บปีกกา เงื่อนไขตัวอย่างต่อไปนี้ ประเมินตัวแปร request.header.accept:

<Step>
    <Condition>request.header.accept = "application/json"</Condition>
    <Name>XMLToJSON</Name>
</Step>

คุณยังอ้างอิงตัวแปรโฟลว์ในโค้ด JavaScript และ Java ได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่

ประเภทข้อมูลของตัวแปรโฟลว์

พร็อพเพอร์ตี้แต่ละรายการของตัวแปรโฟลว์มีประเภทข้อมูล ที่กำหนดไว้อย่างชัดเจน เช่น String, Long, Integer, บูลีนหรือคอลเล็กชัน คุณดูประเภทข้อมูลที่แสดงใน การอ้างอิงตัวแปรโฟลว์ สำหรับตัวแปรที่สร้างโดยนโยบาย โปรดดูหัวข้ออ้างอิงนโยบายที่เฉพาะเจาะจงสำหรับข้อมูลประเภทข้อมูล

ตัวแปรที่คุณสร้างด้วยตัวเองจะถือว่าเป็นประเภทที่กำหนดเมื่อสร้างขึ้น และจะขึ้นอยู่กับ เกี่ยวกับประเภทค่าที่อนุญาต ตัวอย่างเช่น ตัวแปรที่สร้างในโค้ด Node.js ได้แก่ จำกัดเฉพาะตัวเลข สตริง บูลีน ค่าว่าง หรือไม่ได้กำหนด

การใช้ตัวแปรโฟลว์ในนโยบาย

นโยบายจำนวนมากสร้างตัวแปรโฟลว์เพื่อเป็นส่วนหนึ่งของการดำเนินการตามปกติ เอกสารข้อมูลอ้างอิงนโยบาย ตัวแปรเฉพาะนโยบายนี้ทั้งหมด

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

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

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

ในตัวอย่างต่อไปนี้ ตัวแปรการดึงข้อมูลจะแยกวิเคราะห์ข้อความตอบกลับและจัดเก็บข้อมูลที่เฉพาะเจาะจง ที่ได้จากคำตอบ นโยบายจะสร้างตัวแปรที่กำหนดเอง 2 รายการ geocoderesponse.latitude และ geocoderesponse.longitude และมอบหมาย คุณค่าไปที่หน่วยโฆษณาเหล่านั้น

<ExtractVariables name="ParseGeocodingResponse">
  <Source>response</Source>
  <VariablePrefix>geocoderesponse</VariablePrefix>
  <JSONPayload>
    <Variable name="latitude">
      <JSONPath>$.results[0].geometry.location.lat</JSONPath>
    </Variable>
    <Variable name="longitude">
      <JSONPath>$.results[0].geometry.location.lng</JSONPath>
    </Variable>
  </JSONPayload>
</ExtractVariables>

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

การทำงานกับตัวแปรโฟลว์ในโค้ด JavaScript

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

หากต้องการเข้าถึงตัวแปรในโค้ด JavaScript ให้เรียกเมธอด getter/setter บนออบเจ็กต์ต่อไปนี้

  • context
  • proxyRequest
  • proxyResponse
  • targetRequest
  • targetResponse

ดังที่คุณเห็น ออบเจ็กต์เหล่านี้อ้างอิงแมปกับส่วนที่คุ้นเคยของโมเดลโฟลว์พร็อกซี ตามที่อธิบายไว้ก่อนหน้านี้ในการแสดงภาพโฟลว์ของพร็อกซี API

ออบเจ็กต์ context สอดคล้องกับ "ทั่วโลก" ตัวแปรที่ใช้ได้ เช่น ระบบ ตัวแปร เช่น คุณสามารถเรียก getVariable() ในออบเจ็กต์ context เพื่อดูปีปัจจุบัน:

var year = context.getVariable('system.time.year');

ในทำนองเดียวกัน คุณสามารถเรียก setVariable() เพื่อตั้งค่าของตัวแปรที่กำหนดเองหรือสำหรับ ตัวแปรสำเร็จรูปที่เขียนได้ทั้งหมด ที่นี่ เราสร้างตัวแปรที่กำหนดเองชื่อ organization.name.myorg แล้วกำหนดมูลค่าให้

var org = context.setVariable('organization.name.myorg', value);

เนื่องจากตัวแปรนี้สร้างขึ้นด้วยออบเจ็กต์ context จึงสามารถใช้กับ กลุ่มโฟลว์ทั้งหมด (ซึ่งก็คือเหมือนกับการสร้างตัวแปรร่วม)

คุณยังสามารถรับ/ตั้งค่าตัวแปรโฟลว์พร็อกซีในโค้ด Java ที่คุณเรียกใช้ด้วย นโยบายของ Javaข้อความไฮไลต์

การเข้าถึงตัวแปรโฟลว์ในแอปพลิเคชัน Node.js

คุณจะรับ ตั้งค่า และลบตัวแปรโฟลว์ได้จากโค้ด Node.js ที่ทำให้ใช้งานได้ใน Edge สิ่งที่ต้องมี ที่ต้องทำคือ "require" โมดูลการเข้าถึง Apigee ในโค้ดของคุณ โปรดดูรายละเอียดที่การเข้าถึงตัวแปรโฟลว์ใน Node.js

สิ่งที่ต้องจดจำ

สิ่งสำคัญที่ควรจดจำเกี่ยวกับตัวแปรโฟลว์มีดังนี้

  • "พร้อมใช้งาน" บางรายการ ระบบจะสร้างอินสแตนซ์และป้อนข้อมูลตัวแปรโดยอัตโนมัติโดยพร็อกซี โดยตรง ซึ่งเก็บบันทึกไว้ในการอ้างอิงตัวแปรโฟลว์
  • คุณสร้างตัวแปรที่กำหนดเองซึ่งพร้อมใช้งานในโฟลว์พร็อกซีได้ เป็นไปได้ เพื่อสร้างตัวแปรโดยใช้นโยบายต่างๆ เช่น นโยบาย AssignMessage และ JavaScript และ ในโค้ด Node.js
  • ตัวแปรมีขอบเขต เช่น ตัวแปรบางตัวจะสร้างขึ้นโดยอัตโนมัติเมื่อ พร็อกซีแรกได้รับคำขอจากแอป ระบบจะเติมตัวแปรอื่นๆ ในขั้นตอนการตอบกลับ ของพร็อกซี ตัวแปรการตอบกลับเหล่านี้ยังไม่มีการกำหนดจนกว่ากลุ่มการตอบกลับ ในการดำเนินการ
  • เมื่อบังคับใช้นโยบาย สามารถสร้างและป้อนข้อมูลตัวแปรเฉพาะนโยบายได้ สำหรับแต่ละนโยบายจะแสดงรายการตัวแปรเฉพาะนโยบายที่เกี่ยวข้องทั้งหมดเหล่านี้
  • โดยปกติแล้วขั้นตอนแบบมีเงื่อนไขจะประเมินตัวแปรอย่างน้อย 1 รายการ คุณต้องเข้าใจ หากคุณต้องการสร้างขั้นตอนแบบมีเงื่อนไข
  • นโยบายจำนวนมากใช้ตัวแปรเป็นอินพุตหรือเอาต์พุต อาจเป็นตัวแปรที่ตัวแปรหนึ่งสร้างขึ้น จะมีการใช้นโยบายอื่นในภายหลัง
  • คุณสามารถรับและตั้งค่าตัวแปรโฟลว์จำนวนมากจากภายใน Node.js โดยใช้ JavaScript แบบตรง (และโมเดลออบเจ็กต์ JavaScript ของเรา) หรือนโยบาย Javaข้อความไฮไลต์ ซึ่งเรียกใช้โค้ด บน Edge

ตัวอย่างโค้ดที่เกี่ยวข้อง

ตัวอย่างพร็อกซี API อยู่ใน GitHub และง่ายต่อการดาวน์โหลดและ โปรดดูการใช้พร็อกซี API ตัวอย่างสำหรับ เกี่ยวกับการดาวน์โหลดและใช้ตัวอย่าง ดูคำอธิบาย API ในรายการตัวอย่าง พร็อกซีตัวอย่างและหน้าที่ของพร็อกซี

ตัวอย่างพร็อกซีที่มีการใช้ตัวแปรและการประมวลผลตัวแปรมีดังนี้

  • ตัวแปร - สาธิตวิธีแยกและตั้งค่าตัวแปรตามการส่งและข้อความ JSON และ XML เนื้อหา
  • policy-mashup-cookbook - แอปพลิเคชันสมบูรณ์ที่ใช้องค์ประกอบของนโยบายในการเรียกใช้ API สาธารณะ 2 รายการ รวมผลลัพธ์ และสร้างคำตอบที่สมบูรณ์ขึ้นสำหรับไคลเอ็นต์ แอป สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวอย่างนี้ โปรดดูที่การใช้นโยบาย องค์ประกอบ
  • นโยบายเงื่อนไข ใช้การบังคับใช้นโยบายแบบมีเงื่อนไขอย่างง่ายตามค่าตัวแปร

หัวข้อที่เกี่ยวข้อง

  • ตัวแปรทั้งหมดที่สร้างขึ้นโดยอัตโนมัติในพร็อกซี API จะแสดงอยู่ในฟิลด์ การอ้างอิงตัวแปรโฟลว์ นอกจากนี้ ข้อมูลอ้างอิงยังแสดงประเภทและขอบเขตของตัวแปรแต่ละรายการด้วย
  • หากต้องการดูตัวแปรที่นโยบายหนึ่งๆ สร้างขึ้นมา โปรดดูข้อมูลอ้างอิง สำหรับนโยบาย ตัวอย่างเช่น โปรดดู ตัวแปรโฟลว์ในมิติข้อมูล ข้อมูลอ้างอิงนโยบายโควต้า