MuleSoft - ตัวประมวลผลข้อความและส่วนประกอบสคริปต์
โมดูลการเขียนสคริปต์อำนวยความสะดวกให้ผู้ใช้ใช้ภาษาสคริปต์ใน Mule กล่าวง่ายๆคือโมดูลการเขียนสคริปต์สามารถแลกเปลี่ยนตรรกะที่กำหนดเองซึ่งเขียนด้วยภาษาสคริปต์ สคริปต์สามารถใช้เป็น Implementations หรือ Transformers สามารถใช้สำหรับการประเมินนิพจน์เช่นสำหรับควบคุมการกำหนดเส้นทางข้อความ
Mule มีภาษาสคริปต์ที่รองรับดังต่อไปนี้ -
- Groovy
- Python
- JavaScript
- Ruby
จะติดตั้ง Scripting Modules ได้อย่างไร?
อันที่จริง Anypoint Studio มาพร้อมกับโมดูลการเขียนสคริปต์ หากคุณไม่พบโมดูลใน Mule Palette คุณสามารถเพิ่มโมดูลได้โดยใช้+Add Module. หลังจากเพิ่มเราสามารถใช้การดำเนินการโมดูลสคริปต์ในแอปพลิเคชัน Mule ของเรา
ตัวอย่างการใช้งาน
ตามที่กล่าวไว้เราต้องลากและวางโมดูลลงในพื้นที่ทำงานเพื่อสร้างพื้นที่ทำงานและใช้ในแอปพลิเคชันของเรา ต่อไปนี้เป็นตัวอย่างของมัน -
เรารู้วิธีกำหนดค่าคอมโพเนนต์ HTTP Listener แล้ว ดังนั้นเราจะพูดคุยเกี่ยวกับการกำหนดค่าโมดูลการเขียนสคริปต์ เราจำเป็นต้องทำตามขั้นตอนที่เขียนด้านล่างเพื่อกำหนดค่าโมดูลการเขียนสคริปต์ -
Step 1
ค้นหาโมดูล Scripting จาก Mule Palette แล้วลากไฟล์ EXECUTE การทำงานของโมดูลการเขียนสคริปต์ในโฟลว์ของคุณตามที่แสดงด้านบน
Step 2
ตอนนี้เปิดแท็บ Execute configuration โดยดับเบิลคลิกที่เดียวกัน
Step 3
ภายใต้ General เราจำเป็นต้องระบุรหัสในไฟล์ Code text window ดังแสดงด้านล่าง -
Step 4
ในที่สุดเราต้องเลือกไฟล์ Engineจากคอมโพเนนต์การดำเนินการ รายการเครื่องยนต์มีดังต่อไปนี้ -
- Groovy
- Nashorn(javaScript)
- jython(Python)
- jRuby(Ruby)
XML ของตัวอย่างการดำเนินการข้างต้นในตัวแก้ไข Configuration XML มีดังต่อไปนี้ -
<scripting:execute engine="jython" doc:name = "Script">
<scripting:code>
def factorial(n):
if n == 0: return 1
return n * factorial(n-1)
result = factorial(10)
</scripting:code>
</scripting:execute>
แหล่งที่มาของข้อความ
Mule 4 มีรูปแบบที่เรียบง่ายกว่าข้อความ Mule 3 ทำให้ง่ายต่อการทำงานกับข้อมูลในลักษณะที่สอดคล้องกันระหว่างตัวเชื่อมต่อโดยไม่ต้องเขียนทับข้อมูล ในรูปแบบข้อความ Mule 4 แต่ละเหตุการณ์ Mule ประกอบด้วยสองสิ่ง:a message and variables associated with it.
ข้อความ Mule กำลังมี payload และแอตทริบิวต์โดยที่แอตทริบิวต์ส่วนใหญ่เป็นข้อมูลเมตาเช่นขนาดไฟล์
และตัวแปรจะเก็บข้อมูลผู้ใช้ตามอำเภอใจเช่นผลการดำเนินการค่าเสริมเป็นต้น
ขาเข้า
คุณสมบัติขาเข้าใน Mule 3 ตอนนี้กลายเป็นแอตทริบิวต์ใน Mule 4 ดังที่เราทราบว่าคุณสมบัติขาเข้าเก็บข้อมูลเพิ่มเติมเกี่ยวกับน้ำหนักบรรทุกที่ได้รับจากแหล่งที่มาของข้อความ แต่ตอนนี้ใน Mule 4 ทำได้ด้วยความช่วยเหลือของแอตทริบิวต์ คุณสมบัติมีข้อดีดังต่อไปนี้ -
ด้วยความช่วยเหลือของแอตทริบิวต์เราสามารถดูได้อย่างง่ายดายว่ามีข้อมูลใดบ้างเนื่องจากแอตทริบิวต์ถูกพิมพ์อย่างรุนแรง
เราสามารถเข้าถึงข้อมูลที่อยู่ในแอตทริบิวต์ได้อย่างง่ายดาย
ต่อไปนี้เป็นตัวอย่างของข้อความทั่วไปใน Mule 4 -
ขาออก
คุณสมบัติขาออกใน Mule 3 ต้องถูกระบุอย่างชัดเจนโดยตัวเชื่อมต่อ Mule และการขนส่งเพื่อส่งข้อมูลเพิ่มเติม แต่ใน Mule 4 แต่ละรายการสามารถตั้งค่าแยกกันได้โดยใช้นิพจน์ DataWeave สำหรับแต่ละรายการ ไม่ก่อให้เกิดผลข้างเคียงใด ๆ ในกระแสหลัก
ตัวอย่างเช่นด้านล่างนิพจน์ DataWeave จะดำเนินการร้องขอ HTTP และสร้างส่วนหัวและพารามิเตอร์การสืบค้นโดยไม่จำเป็นต้องตั้งค่าคุณสมบัติข้อความ สิ่งนี้แสดงในรหัสด้านล่าง -
<http:request path = "M_issue" config-ref="http" method = "GET">
<http:headers>#[{'path':'input/issues-list.json'}]</http:headers>
<http:query-params>#[{'provider':'memory-provider'}]</http:query-params>
</http:request>
ตัวประมวลผลข้อความ
เมื่อ Mule ได้รับข้อความจากแหล่งข้อความการทำงานของตัวประมวลผลข้อความจะเริ่มขึ้น Mule ใช้ตัวประมวลผลข้อความอย่างน้อยหนึ่งตัวเพื่อประมวลผลข้อความผ่านโฟลว์ ภารกิจหลักของตัวประมวลผลข้อความคือการแปลงกรองเสริมสร้างและประมวลผลข้อความเมื่อผ่านโฟลว์ล่อ
การจัดหมวดหมู่ของ Mule Processor
ต่อไปนี้เป็นหมวดหมู่ของ Mule Processor ตามฟังก์ชัน -
Connectors- ตัวประมวลผลข้อความเหล่านี้ส่งและรับข้อมูล นอกจากนี้ยังเชื่อมต่อข้อมูลเข้ากับแหล่งข้อมูลภายนอกผ่านโปรโตคอลมาตรฐานหรือ API ของบุคคลที่สาม
Components - ตัวประมวลผลข้อความเหล่านี้มีความยืดหยุ่นตามธรรมชาติและดำเนินการตามตรรกะทางธุรกิจที่นำไปใช้ในภาษาต่างๆเช่น Java, JavaScript, Groovy, Python หรือ Ruby
Filters - พวกเขากรองข้อความและอนุญาตให้มีการประมวลผลเฉพาะข้อความต่อไปในขั้นตอนตามเกณฑ์ที่กำหนด
Routers - ตัวประมวลผลข้อความนี้ใช้เพื่อควบคุมการไหลของข้อความไปยังเส้นทางการเรียงลำดับใหม่หรือการแยก
Scopes - โดยทั่วไปแล้วจะห่อตัวอย่างโค้ดเพื่อจุดประสงค์ในการกำหนดพฤติกรรมที่ละเอียดภายในโฟลว์
Transformers - บทบาทของหม้อแปลงคือการแปลงประเภทน้ำหนักบรรทุกข้อความและรูปแบบข้อมูลเพื่ออำนวยความสะดวกในการสื่อสารระหว่างระบบ
Business Events - โดยทั่วไปแล้วจะจับข้อมูลที่เกี่ยวข้องกับตัวบ่งชี้ประสิทธิภาพหลัก
Exception strategies - ตัวประมวลผลข้อความเหล่านี้จัดการข้อผิดพลาดทุกประเภทที่เกิดขึ้นระหว่างการประมวลผลข้อความ