在 Ballerina 中处理可选的查询参数

Handling optional query parameters in Ballerina

我有一项服务接受可选的查询参数。调用此服务时出现以下错误。

fatal error: cannot find key 'schoolId' error: error, message: cannot find key 'schoolId' at guide:studentInfo.getStudentBySearch(student_info.bal:91)

以下是我的代码。我如何才能安全地检查是否传递了特定的查询参数并在这些条件下继续?

    @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;
    ..
    }

"req.getQueryParams()" returns 一张地图[1]。在这种情况下,您可以根据需要使用任何地图功能[2]。

您可以使用“hasKey”函数来检查查询参数是否存在。

示例:

map params = request.getQueryParams();
if (params.hasKey("schoolId")) {
    string schoolId = <string>params["schoolId"];
    // Handle here
} else {
    // Handle here
}

[1] - https://ballerina.io/swan-lake/learn/by-example/query-path-matrix-param.html [2] - https://ballerina.io/learn/api-docs/ballerina/lang.map/index.html