我为客户端定义了一个资源方法,如下所示。
isolated resource function get test/[string name]() returns string {
return string `Hello ${name}`;
}
我从服务中调用这个方法。
isolated resource function get test/[string str]() returns string {
return clientObj->/test/str();
}
当我像 localhost:9090/test/John 这样调用此资源时 - 我希望输出为“Hello John”。但实际输出是“Hello str”。路径参数str似乎没有解析。这是预期的行为还是有办法解决这个问题?
最佳答案
这是预期的行为,因为您已直接添加 str
作为资源路径段。默认情况下,资源路径段会转换为字符串。所以这条路径被认为是target/str
。如果您想给出变量 str
的值,那么您必须使用计算的资源访问路径段来调用它,即用方括号括起来:
resource function get test/[string str]() returns string {
// The brackets () at the end is optional if you don't have any other parameters
return clientObj->/test/[str];
}
https://ballerina.io/learn/by-example/http-client-path-parameter/
关于ballerina - 资源方法调用中路径参数未解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77256243/