Spring Boot - двойной PathVariable округляется по запросу - PullRequest
0 голосов
/ 04 апреля 2019

Я разрабатываю свой первый REST API с использованием Spring boot. Я создал несколько запросов на мой API, и в настоящее время я тестирую их Я нашел ошибку в одном из этих запросов: Когда @PathVariable установлен, он округляется

Вот код:

@RequestMapping(path = "/find/near/{lati}/{longi}", method = GET, produces = APPLICATION_JSON_VALUE)
    public Animals getAnimalsNearPosition(@PathVariable double lati, @PathVariable double longi) throws CenterNotFoundException {
        // On récupère le centre associé à cette cage
        Center center = centers.findCenterNear(lati, longi);

        Animals animals = new Animals();

        // On recherche parmis toutes les cages celles ayant une position proche
        for (Cage c : center.getCages()) {
            if (Position.isNear(c.getPosition().getLatitude(), lati, c.getPosition().getLongitude(), longi)) {
                for (Animal a : c.getResidents()) {
                    animals.addAnimal(a);
                }
            }
        }

        // On retourne les animaux
        return animals;
    }

Например, если я отправлю GET /find/near/4.50/1.39 переменная lati равна 4,50, но longi равна 1,0, а не 1,39. Я пытался отладить с помощью Intellij, но я не могу понять, почему это происходит ...

Есть идеи?

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Spring усекает значение после точки (.) Поскольку первое значение уже равно 4,5, оно, похоже, не усекается, но фактически этот первый параметр также усекается.Вы также можете найти решение этой проблемы здесь.

spring @pathvariable с точкой становится усеченной

0 голосов
/ 04 апреля 2019

Я решил это с помощью регулярных выражений

@RequestMapping(path = "/find/at/{lati}/{longi:.+}", method = GET, produces = APPLICATION_JSON_VALUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...