Можно ли определить ресурсы по умолчанию для сервиса Ballerina? - PullRequest
0 голосов
/ 22 мая 2018

Попытка выяснить, могу ли я выставить curl 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;
            ...
            }
    ...
    }

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

В балерине запрос отправляется на основе пути и глагола 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, будут сопоставлены с ним при отсутствии конкретного соответствия.

Примеры URL:

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

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

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

0 голосов
/ 22 мая 2018

Использование только "/" в качестве пути к ресурсу должно работать.

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