如何将端点作为参数传递给 Ballerina 中的函数

How to pass an endpoint as an parameter to a function in Ballerina

我正在使用 'wso2/ftp' 包进行一些文件传输过程,并且在我的主 .bal 文件中有一个 ftp:Client 端点,如下所示。

endpoint ftp:Client server1 {
    protocol: ftp:FTP,
    host:<ip_address>,
    port:21,
    secureSocket: {
        basicAuth: {
            username: <user_name>,
            password: <password>
        }
    }
};

将此端点传递给另一个 .bal 文件中的 public 函数的方法有哪些。

尝试这样做,

function functionName(ftp:Client server1){
    functionFromOtherBalFile(server1);
} 

但出现错误

invalid action invocation, expected an endpoint

来自包含 'functionFromOtherBalFile' 实现的第二个 .bal 文件。

实施'functionFromOtherBalFile':

public function functionFromOtherBalFile(ftp:Client server1){
    var readFile=server1->get("/file.txt");
    match readFile{
        error err=>{
            io:println("An error occured");
            return err;
        }
        io:ByteChannel =>{
            io:println("Success");
            return readFile;
        }
    }
}

有人可以帮我解决这个问题吗?

以下是将端点作为参数传递给函数的方法。

import ballerina/http;
import ballerina/io;

function main (string... args) {
    endpoint http:Client cheapAir {
        url: "http://localhost:9090/CheapAir"
    };

    invoke(cheapAir);
}

function invoke(http:Client client) {
    endpoint http:Client myEP = client;

    json reqPayload = {firstName:"Sameera", lastName:"Jayasoma"};
    http:Response response = check myEP -> post("/bookFlight", reqPayload);
    json resPayload = check response.getJsonPayload();
    io:println(resPayload);  
}