Ich versuche einfach REST-API für Daten mit zwei optionalen params verfügbar Abfrage zu belichten:Spring Data - mit optionals Abfrage withoud if-else
GET myServ/greeting?message=X&type=Y
Leider mit dem richtigen Federdatenkonfiguration Ich bin stucked um eine korrekte Abfrage zu ermöglichen. Im Folgenden Methoden
sollte- GET myserv/Gruß - Rückkehr jeder Gruß
- GET myserv/Gruß message = X - kommen jedes mit Nachricht Gruß = X
- GET myserv/Gruß type = Y - kommen jedes mit Typ-Gruß = Y
- GET myserv/Gruß message = X & type = Y - Rückkehr jeder mit Meldung Gruß = X UND type = Y
Einfach wie es sein kann - aber ich nicht wan t zu schreiben, wenn sonst Code in meinem Controller! Ist eine Out-of-Box-Konfiguration aktiviert, die zu einem Unterverhalten führt? Ich probierte verschiedene Mischung von Standard JpaReposotory Methoden und ExampleMatchers aber immer noch kann ich es nicht funktionieren lassen.
Mein Modell:
package my.model;
import lombok.*;
import javax.persistence.*;
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Getter
@ToString
public class Greeting {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String message;
private String type;
}
Repository:
package my.repository;
import my.model.Greeting;
import org.springframework.data.jpa.repository.JpaRepository;
public interface GreetingRepository extends JpaRepository<Greeting, Long>{
}
web-Controller:
package my.web;
import my.model.Greeting;
import my.repository.GreetingRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
@RestController
public class GreetingController {
@Autowired
private GreetingRepository repository;
@RequestMapping(value = "/greeting", method = GET)
public List<Greeting> get(
@RequestParam(value = "message", required = false) String message,
@RequestParam(value = "type", required = false) String type){
return HOW_TO_DO_IT??;
}
}