Xây dựng các plugin tùy chỉnh cho 8N8N: Hướng dẫn của nhà phát triển

Building Custom Plugins for 8n8n: A Developer’s Guide

Xây dựng các plugin tùy chỉnh cho N8N: Hướng dẫn của nhà phát triển

Hiểu kiến ​​trúc N8N

N8N là một công cụ tự động hóa dòng công việc nguồn mở mạnh mẽ cho phép người dùng kết nối các ứng dụng khác nhau một cách liền mạch. Kiến trúc của hệ thống được thiết kế với sự linh hoạt trong tâm trí, tạo điều kiện cho việc tích hợp các plugin tùy chỉnh. Các plugin này, được gọi là nút, mở rộng khả năng của N8N bằng cách cho phép kết nối với các dịch vụ mới hoặc thực hiện các tác vụ cụ thể không phải là một phần của việc cung cấp cốt lõi.

Điều kiện tiên quyết để phát triển plugin

Trước khi lặn vào phát triển plugin, hãy đảm bảo bạn có các điều kiện tiên quyết sau:

  • Node.js: Cài đặt phiên bản LTS mới nhất của Node.js, vì N8N được xây dựng trên nền tảng này.
  • môi trường n8n: Thiết lập môi trường N8N. Bạn có thể chạy N8N cục bộ bằng Docker hoặc NPM.
  • Làm quen với JavaScript/TypeScript: Hiểu về JavaScript hoặc TypeScript là rất quan trọng, vì N8N sử dụng JavaScript để phát triển nút.
  • Kiểm soát phiên bản: Làm quen với Git để kiểm soát và hợp tác phiên bản.

Thiết lập môi trường phát triển của bạn

  1. Sao chép kho lưu trữ N8N:

    git clone https://github.com/n8n-io/n8n.git
    cd n8n
    npm install
  2. Chạy N8N tại địa phương: Sử dụng lệnh sau để chạy N8N với môi trường cục bộ:

    npm run start
  3. Truy cập UI: Mở trình duyệt của bạn và điều hướng đến https://localhost:5678 Để truy cập giao diện N8N.

Tạo plugin tùy chỉnh đầu tiên của bạn

  1. Cấu trúc thư mục nút: Điều hướng đến packages/nodes-base/nodes nơi bạn sẽ tạo một thư mục mới cho plugin tùy chỉnh của bạn (ví dụ, MyCustomNode).

  2. Xác định nút: Tạo một tệp có tên MyCustomNode.node.ts. Đây là một mẫu cơ bản:

    import {
        IExecuteFunctions,
        INodeType,
        INodeTypeDescription,
    } from 'n8n-core';
    
    export class MyCustomNode implements INodeType {
        description: INodeTypeDescription = {
            displayName: 'My Custom Node',
            name: 'myCustomNode',
            group: ['transform'],
            version: 1,
            description: 'Handles my custom tasks',
            defaults: {
                name: 'My Custom Node',
                color: '#1F2F3F',
            },
            inputs: ['main'],
            outputs: ['main'],
            properties: [
                {
                    displayName: 'Input Property',
                    name: 'inputProperty',
                    type: 'string',
                    default: '',
                    required: true,
                },
                {
                    displayName: 'Output Property',
                    name: 'outputProperty',
                    type: 'string',
                    default: '',
                    required: true,
                },
            ],
        };
    
        async execute(this: IExecuteFunctions) {
            const input = this.getInputData(0);
            const output = input[0].json;
            output[this.getNodeParameter('outputProperty')] = this.getNodeParameter('inputProperty');
            this.sendOutputData([this.helpers.returnJsonArray([output])]);
        }
    }
  3. Đăng ký nút: Biến đổi packages/nodes-base/nodes/NodeTypes.ts Bằng cách thêm lớp nút tùy chỉnh của bạn:

    import { MyCustomNode } from './MyCustomNode/MyCustomNode.node';
    
    // Register your custom node
    NodeTypes['myCustomNode'] = new MyCustomNode();
  4. Kiểm tra plugin của bạn:

    • Lưu các thay đổi của bạn và khởi động lại N8N.
    • Nút tùy chỉnh của bạn bây giờ sẽ có sẵn trong UI N8N.

Thêm các tính năng bổ sung

Bạn có thể nâng cao plugin của mình hơn nữa bằng cách triển khai các tính năng bổ sung:

  • Hỗ trợ xác thực: Nếu nút của bạn yêu cầu thông tin đăng nhập API, hãy thực hiện xác thực bằng cách mở rộng IAuth và xác định các phương pháp liên quan.

  • Xử lý lỗi: Sử dụng các khối thử trong execute Phương pháp để xử lý một cách duyên dáng. Bạn cũng có thể tận dụng việc ghi nhật ký lỗi tích hợp của N8N.

  • Thao tác dữ liệu: Thực hiện các chức năng tiện ích để thao tác dữ liệu có thể đơn giản hóa việc xử lý trong nút của bạn.

  • Đầu vào động/đầu ra: Sửa đổi các thuộc tính nút bằng cách tạo các đầu vào động hoặc đầu ra dựa trên thực thi nút trước đó hoặc điều kiện đầu vào.

Phiên bản và xuất bản plugin của bạn

  1. Kiểm soát phiên bản: Thực hiện theo các nguyên tắc Semver để phiên bản nút tùy chỉnh của bạn. Tăng phiên bản trong package.json với mỗi bản phát hành cẩn thận.

  2. Xuất bản: Nếu bạn muốn chia sẻ nút tùy chỉnh của mình, bạn có thể xuất bản nó lên NPM. Bạn sẽ muốn xây dựng gói nút của mình với:

    npm run build

    Sau đó xuất bản gói của bạn:

    npm publish

Tài liệu và sự tham gia của cộng đồng

Viết tài liệu rõ ràng là rất quan trọng cho plugin tùy chỉnh của bạn. Sử dụng các tệp Markdown để giải thích mục đích của nó, hướng dẫn cài đặt và sử dụng. Tham gia với cộng đồng N8N trên các nền tảng như Slack hoặc GitHub để thu thập phản hồi và cải thiện plugin của bạn.

Tăng cường kỹ năng của bạn

Liên tục nâng cao các kỹ năng của bạn bằng cách khám phá các thực tiễn tốt nhất của JavaScript, hiểu các API REST và theo dõi các ghi chú phát hành của N8N cho các tính năng mới. Tham gia vào các hội thảo hoặc các khóa học trực tuyến tập trung vào phát triển JavaScript và tự động hóa quy trình làm việc để biết những hiểu biết thực tế.

Ví dụ và các trường hợp sử dụng

Xem xét các trường hợp sử dụng thực tế sau đây cho plugin N8N tùy chỉnh của bạn:

  • Xử lý webhook: Tạo một nút xử lý webhooks và kích hoạt các quy trình công việc dựa trên các sự kiện thời gian thực.

  • Chuyển đổi dữ liệu: Thực hiện một nút biến đổi các định dạng dữ liệu đến không được N8N hỗ trợ tự nhiên.

  • Nhiệm vụ theo lịch trình: Xây dựng một nút tương tác với dịch vụ lập lịch trình nhiệm vụ để quản lý các công việc theo lịch trình trong quy trình công việc của bạn.

Bằng cách hiểu các lĩnh vực này, bạn có thể mở rộng đáng kể chức năng của dự án của mình bằng N8N và đóng góp một cách có giá trị cho hệ sinh thái của nó. Hãy nhớ thường xuyên xem xét và tái cấu trúc mã của bạn, đảm bảo nó vẫn hiệu quả và tuân thủ các thực tiễn tốt nhất mới nhất của N8N.