Ich versuche zu lernen, wie eine CRUD ReST API zu implementieren. Ich habe eine einfache Anwendung mit JAX-RS erstellt und teste meine HTTP-Methoden mit Postman. Meine Frage ist, wie definiere ich optionale Felder für ein Modell für die POST-Methode?ReST Ressource/Modell mit optionalen Feldern
ex. Die Person enthält Vorname, Nachname als Pflichtfelder und Alter, Geschlecht als optionale Felder.
@XmlRootElement
public class Person {
private long id;
private String firstName;
private String lastName;
public Person() {}
public Person(long id, String firstName, String lastName) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
}
//getter and setters omitted
Oben ist eine Unterressource zu einer anderen Ressource, und unterhalb addPerson Service-Methode verwendet wird, um eine HashMap zu senden.
public Person addPerson(long userId, Person person) {
Map<Long, Person> persons = users.get(userId).getPersons();
person.setId(persons.size() + 1);
persons.put(person.getId(), person);
return person;
}
Ich dachte an ein Modell, dessen Konstruktor hat mehrere unterschiedliche Kombination von Parametern Konstruktion einer Modellklasse zu instanziiert, aber das scheint nicht sehr effizient. Kann jemand beraten?
WEITERE BEARBEITUNG: Dies muss während der Verarbeitung von JSON erfolgen. Gegeben seien zwei JSON formatiert Anfrage:
{
"firstName": "Jay",
"lastName": "Kay",
"age": "13"
}
und
{
"firstName": "Jay",
"lastName": "Kay"
}
sollten beide seit Jahren verarbeitbar sein (wie auch Geschlecht) ist eine „optionale Attribute“ so kann es entweder weggelassen werden, oder einen Wert . Ich stoße auf JSON-Parser und versuche, sie zu lesen, da dies eine Antwort auf die Verarbeitung solcher Anfragen sein könnte.
Können Sie Ihr Modell und Ressourcenklassen zur Verfügung stellen? –
@JoPeyper Ich habe Änderungen hinzugefügt, um einige Beispiele zu zeigen. Lassen Sie mich wissen, ob das oben Sinn macht? Vielen Dank! – viviboox3
Die letzte Zeile ist mir noch nicht klar. Was genau willst du von JSON aus verarbeiten? –