2

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

致命错误:找不到密钥“schoolId”错误:错误,消息:在指南中找不到密钥“schoolId”: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;
    ..
    }
4

1 回答 1

3

“req.getQueryParams()”返回一个地图[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

于 2018-06-06T01:50:28.080 回答