Chciałbym mieć metodę takiego interfejsu reszty zasobuDropwizard/Jersey: Uwierzytelnianie i parametr JSON
@POST
@Consumes(MediaType.APPLICATION_JSON)
public void add(@Auth User user, @Valid Food food) {
//consume
}
Jednakże, nie jest to możliwe, ponieważ pojawia się błąd jak: "POWAŻNE: brak zależności dla metody public void com.restaurant.FoodResource.add (com.restaurant.User, com.restaurant.Food) w parametrze o indeksie 0 KOD: Brakująca zależność dla metody public void com.restaurant.FoodResource .add (com.restaurant.User, com.restaurant.Food) o parametrze na indeksie 1 POWAŻNE: Meth od, public void com.restaurant.FoodResource.add (com.restaurant.User, com.restaurant.Food), opatrzony komentarzem POST o zasobach, klasa com.restaurant.FoodResource, nie jest uznawana za prawidłową metodę zasobów.
Okazało się, że to nie jest możliwe, aby mieć dwa parametry nie opatrzone niektórych adnotacji zgodnie ze specyfikacjami (3.3.2.1 Podmiot parametry) http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html
Jakie istnieją opcje, aby jeszcze zrobić coś takiego? Te, które przychodzą mi na myśl, to obiekt, który obejmuje użytkownika i jedzenie, ale to nie wydaje się być dla mnie miłym rozwiązaniem.
Czy istnieje inny, bardziej elegancki sposób na zrobienie czegoś takiego? Czy mogę wysłać reprezentację JSON Food jako @PathParam?
dziwne, zrobiłem to i pracował: 'public void modifyUser (@ Auth Użytkownik authUser, użytkownik @Valid User) '. Musiałem opublikować użytkownika, więc oddzieliłem authUser i wysłanego użytkownika. –