POST-запрос на REST API с Джерси, не обновляющим список в репозитории, т.е. не добавляющим новый объект, который публикуется - PullRequest
0 голосов
/ 19 апреля 2020

Я работаю над проектом по созданию REST API для совместного использования приложения. Я использую Джерси для его реализации и запускаю на сервере Tomcat. Я создал класс RideRepository, который создает новую поездку, и получил все доступные поездки. Мой запрос GET, чтобы получить все аттракционы работает отлично. Для создания новой поездки и добавления ее в список поездок запрос POST возвращает ответ (поэтому без ошибок). Это должно обновить мой список поездок. Но когда я выполняю запрос GET для получения всех поездок, новая добавленная поездка не появляется в ответе. Я использовал Почтальон, чтобы выполнить эти запросы. Вот мой код для RideRepository, который создает поездку и получает все поездки.

public class RideRepository 
{

    List<Ride> rides;

    public RideRepository() {
        rides = new ArrayList<>();

        Ride r1 = new Ride();
        r1.setRid(1);
        r1.setName("Chintan");

        Ride r2 = new Ride();
        r2.setRid(2);
        r2.setName("Tejasvi");

        rides.add(r1);
        rides.add(r2);

    }

    public List<Ride> getRides() {
        return rides;
    }

    public void createRide(Ride r3) {
        rides.add(r3); 
    }
}

Это мой код для RideResource, который выполняет запросы GET и POST.

@Path("rides")
public class RideResource {

    RideRepository repo = new RideRepository();

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public List<Ride> getRides() 
    {
        return repo.getRides();
    }

    @POST
    @Path("ride")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public Ride createRide(Ride r1) 
    {
        System.out.println(r1);
        repo.createRide(r1);    
        return r1;
    }
}

Здесь , r3 должен быть добавлен в Список поездок, и когда я делаю запрос GET после, я должен получить обновленный список с добавленным в него r3. Любые ответы приветствуются.

Обновление : я добавил эту строку в функцию createRide, чтобы проверить, действительно ли третья поездка добавлена ​​в список: System.out.println(rides);. И обновленный список содержит поездку, которая была создана. Но он все равно не отображается, когда я вызываю GET запрос на получение всех поездок.

...