是否可以为 Ballerina 服务定义默认资源?

Is it possible to define default resources for a Ballerina service?

试试看能不能曝光 卷曲 http://localhost:9090/studentinfo?schoolId=12341324, 其中 "studentinfo" 是服务路径。

    @http:ServiceConfig { basePath: "/studentinfo" }
    service<http:Service> studentInfo bind studentInfoListener {

            @http:ResourceConfig {
                methods: ["GET"],
                path: "?"
            }
            getStudentBySearch(endpoint client, http:Request req) {

                http:Response response;

                var params = req.getQueryParams();
                var schoolId = <string>params.schoolId;
                var addmissionYear = <string>params.addmissionYear;
            ...
            }
    ...
    }

仅使用“/”作为资源路径应该可行。

@http:ResourceConfig {
    methods: ["GET"],
    path: "/"
}

在 ballerina 中,请求是基于路径和 HTTP 动词调度的。对于默认资源,路径和动词都不应该限制请求。请考虑以下代码片段。

@http:ResourceConfig {
    path: "/*"
}
getStudentBySearch(endpoint client, http:Request req) {

    http:Response response;

    var params = req.getQueryParams();
    var schoolId = <string>params.schoolId;
    var addmissionYear = <string>params.addmissionYear;
...
}

这里HTTP动词没有特别说明。这意味着任何动词都是允许的。

当路径定义为“/*”时,在没有特定匹配的情况下,basePath 之后的任何路径段都将与其匹配。

示例网址:

http://localhost:9090/studentinfo?schoolId=12341324,

http://localhost:9090/studentinfo/resourcePath?schoolId=12341324

http://localhost:9090/studentinfo/name -X POST