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

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

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

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

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

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

ตัวแปรบางอย่างเป็นแบบ "บิวท์อิน" ไปยัง Edge และระบบจะป้อนข้อมูลโดยอัตโนมัติเมื่อใดก็ตามที่ได้รับคำขอ API การ์ดเหล่านี้พร้อมใช้งานตลอดธุรกรรม API คุณยังสร้างตัวแปรที่กำหนดเองได้โดยใช้นโยบายต่างๆ เช่น นโยบาย AssignMessage หรือใน 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 ที่ดำเนินการโดยนโยบายนี้ใช้โมเดลออบเจ็กต์ JavaScript ของ Apigee ซึ่งให้สิทธิ์เข้าถึงโค้ดที่กำหนดเองเพื่อส่งคำขอ การตอบกลับ และออบเจ็กต์บริบทที่เชื่อมโยงกับโฟลว์พร็อกซี 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 กลุ่ม ได้แก่ request ของ ProxyEndpoint, request TargetEndpoint การตอบกลับ TargetEndpoint และ ProxyEndpoint

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

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

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

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

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

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

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

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

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

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

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

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

ตัวแปรบิวท์อินทั้งหมดใน 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 ได้ด้วย ดูข้อมูลเพิ่มเติมได้ที่

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

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

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

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

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

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

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

นโยบาย 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 ของ Apigee ทำให้ JavaScript ที่ดำเนินการบน Edge มีสิทธิ์เข้าถึงตัวแปรโฟลว์พร็อกซีโดยตรง

หากต้องการเข้าถึงตัวแปรในโค้ด 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 callout ได้ด้วย

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

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

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

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

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

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

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

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

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

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

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