Choose your node building approach#
n8n มีสไตล์การสร้าง node อยู่ 2 แบบ คือ declarative และ programmatic
โดยปกติแล้วควรเลือกใช้แบบ declarative สำหรับ node ส่วนใหญ่ เพราะแบบนี้:
- ใช้ syntax แบบ JSON-based ทำให้เขียนง่าย ลดโอกาสเกิด bug
- รองรับอนาคตได้ดีกว่า
- เหมาะกับการเชื่อมต่อ REST APIs
ส่วนแบบ programmatic จะเขียนเยอะกว่า และควรใช้ในกรณีต่อไปนี้:
- Trigger nodes
- Node ที่ไม่ได้เชื่อมต่อ REST API เช่น ต้องเรียก GraphQL API หรือใช้ dependency ภายนอก
- Node ที่ต้องแปลงข้อมูลขาเข้า
- ต้องการ versioning เต็มรูปแบบ ดูรายละเอียดที่ Node versioning
Data handling differences#
ความแตกต่างหลักระหว่าง declarative กับ programmatic คือวิธีจัดการข้อมูลขาเข้าและการสร้าง API request แบบ programmatic ต้องมี execute()
method เพื่ออ่านข้อมูลและ parameter แล้วสร้าง request เอง ส่วน declarative จะใช้ key routing
ใน object operations
จัดการให้ ดูรายละเอียดเพิ่มเติมที่ Node base file สำหรับ parameter และ execute()
method
Syntax differences#
เพื่อให้เห็นความต่างระหว่าง declarative กับ programmatic ดูตัวอย่างโค้ดด้านล่างนี้ ตัวอย่างนี้คือ node สำหรับ FriendGrid (คล้าย SendGrid แบบง่าย) โค้ดนี้ไม่สมบูรณ์ แค่เน้นให้เห็นความต่างของแต่ละสไตล์
แบบ programmatic:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
|
แบบ declarative:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
|