• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Quarkus API GET method by ID

Object Storage Arubacloud
0 głosów
120 wizyt
pytanie zadane 10 czerwca 2020 w Java przez poldeeek Mądrala (5,980 p.)

Chciałem napisać API z podstawowymi metodmi w Javie z użyciem Quarkusa i mam problem przy endpoincie GET z parametrem id. Nie wiem czemu nie zwraca mi obiektu z id 1, przy zapytaniu typu GET - localhost:8080/hello/1 .
 

package org.acme;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;

@Path("/hello")
@Produces(MediaType.APPLICATION_JSON)
public class ExampleResource {

    private List<Car> carList;

    public ExampleResource() {
        this.carList = new ArrayList<>();
        this.carList.add(new Car(1, "Audi", 290000));
        this.carList.add(new Car(2, "Opel", 12200));
    }

    @GET
    public List<Car> getCarList() {
        return this.carList;
    }

    @GET
    @Path("/{id}")
    public List<Car> getCarListById(@PathParam("id") Integer id) {
        List<Car> new_list = new ArrayList<>();
        for(Car car: carList){
            if(car.getId() == id)
                new_list.add(car);
        }
        return new_list;
    }

    @POST
    public void addCar(Car auto) { this.carList.add(auto);};

    @DELETE
    public List<Car> delete(Car deleted_car) {
        carList.remove(deleted_car);
        return carList;
    }
}
package org.acme;

public class Car {
    public Integer id;
    private String name;
    private Integer prize;

    public Car() {
    }

    public Car(Integer id, String name, Integer prize) {
        this.id = id;
        this.name = name;
        this.prize = prize;
    }

    public Integer getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public Integer getPrize() {
        return prize;
    }
}

Ponad to @DELETE też nie chce zadziałać, kiedy korzystając z Postman'a wysyłam zapytanie DELETE z obiektem JSON w body : 
 

{
        "id": 1,
        "name": "Audi",
        "prize": 290000
    }

 

komentarz 10 czerwca 2020 przez HaKIM Szeryf (87,590 p.)
Czesc poldeek,

czy mozesz wstawic na forum, czy to w komentarzu czy to w temacie, co zwraca Ci serwer po wykonaniu GET oraz DELETE?
komentarz 10 czerwca 2020 przez poldeeek Mądrala (5,980 p.)

Przy DELETE zwraca mi pełną liste obiektów :
 

[
    {
        "id": 1,
        "name": "Audi",
        "prize": 290000
    },
    {
        "id": 2,
        "name": "Opel",
        "prize": 12200
    }
]

 

komentarz 10 czerwca 2020 przez poldeeek Mądrala (5,980 p.)
edycja 10 czerwca 2020 przez poldeeek

Działający DELETE :
 

@DELETE
@Path("/delete/{id}")
public List<Car> delete(@PathParam("id") Integer id) {
    List<Car> new_list = new ArrayList<>();
    for(Car car: carList) {
        new_list.add(car);
    }

    new_list.removeIf(car -> car.getId().equals(id));

    return new_list;
}

 

komentarz 11 czerwca 2020 przez HaKIM Szeryf (87,590 p.)
Ciesze sie, ze sobie poradziles. Sorry, ze nic nie odpisywalem, ale mialem wczoraj dzien wypchany po brzegi meetingami.

1 odpowiedź

+2 głosów
odpowiedź 10 czerwca 2020 przez HaKIM Szeryf (87,590 p.)
wybrane 10 czerwca 2020 przez poldeeek
 
Najlepsza
for(Car car: carList){
    if(car.getId() == id)
        new_list.add(car);
}

Zmien na:

for(Car car: carList){
    if(car.getId().equals(id))
        new_list.add(car);
}

Daj znac czy pomoglo w przypadku GET.

komentarz 10 czerwca 2020 przez poldeeek Mądrala (5,980 p.)
Dało radę :P

Podobne pytania

+5 głosów
2 odpowiedzi 208 wizyt
pytanie zadane 19 czerwca 2020 w Java przez reaktywny Nałogowiec (40,990 p.)
0 głosów
3 odpowiedzi 171 wizyt
pytanie zadane 16 maja 2020 w Java przez aram100 Użytkownik (500 p.)
0 głosów
1 odpowiedź 653 wizyt
pytanie zadane 16 lipca 2020 w Java przez T100 Obywatel (1,450 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...