Hallo,
ich möchte ein Objekt per URL auslesen. Es handelt sich um folgendes Szenario. Ich lege Produkte an. Und ein Produkt hat Zutaten und diese Zutaten würde ich gerne als Objekt übergeben. So hat jede Zutat auch Eigenschaften, wie ob es vegan oder vegetarisch ist. Und natürlich haben verschiedene Produkte, eine verschiedene Anzahl an Zutaten. Im Augenblick lese ich einen String aus und füge den Titel hinzu. Aber dabei bleibt es schon. Es fehlen noch Eigenschaften (VEGAN, BIO usw.). Hat jemand einen Ansatz für eine Lösung? Online finde ich recht wenig, was mich in die richtige Richtung bringt.
Vielen Dank.
Viele Grüße,
Helge
ich möchte ein Objekt per URL auslesen. Es handelt sich um folgendes Szenario. Ich lege Produkte an. Und ein Produkt hat Zutaten und diese Zutaten würde ich gerne als Objekt übergeben. So hat jede Zutat auch Eigenschaften, wie ob es vegan oder vegetarisch ist. Und natürlich haben verschiedene Produkte, eine verschiedene Anzahl an Zutaten. Im Augenblick lese ich einen String aus und füge den Titel hinzu. Aber dabei bleibt es schon. Es fehlen noch Eigenschaften (VEGAN, BIO usw.). Hat jemand einen Ansatz für eine Lösung? Online finde ich recht wenig, was mich in die richtige Richtung bringt.
Java:
@Path("/produkt/{produktName}/{barcode}")
public class ProductRestService {
private static Datastore ds;
public ProductRestService() {
ds = dataBaseConnection();
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response writeProductWithProperties(@PathParam("produktName") String produktName,
@PathParam("barcode") String barcode, @QueryParam("ingredient") List<String> ingredients,
@QueryParam("production") List<String> production) {
if (produktName == null) {
return Response.status(Status.BAD_REQUEST).entity("ProduktName wurde nicht übergeben").build();
}
if (barcode == null) {
return Response.status(Status.BAD_REQUEST).entity("Barcode wurde nicht übergeben").build();
}
if (barcode.length() != 13) {
return Response.status(Status.BAD_REQUEST).entity("Es wurde kein Valider Barcode übergeben").build();
}
if (ingredients.isEmpty() || ingredients == null) {
return Response.status(Status.BAD_REQUEST).entity("Es wurde kein Inhaltsstoff übergeben").build();
} else {
}
List<Ingredient> productIngredients = new ArrayList<>();
for (int i = 0; i < ingredients.size(); i++) {
Ingredient ingredient = new Ingredient();
ingredient.setName(ingredients.get(i));
switch (production.get(i)) {
case "VEGAN":
ingredient.setProductionEnum(ProductionEnum.VEGAN);
break;
case "VEGETARIEN":
ingredient.setProductionEnum(ProductionEnum.VEGETARIAN);
break;
default:
break;
}
if (ingredient != null) {
productIngredients.add(ingredient);
}
}
// List<Ingredient>productIngredients = ingredients;
Product product = new Product();
product.setName(produktName);
product.setBarcode(barcode);
product.setIngredient(productIngredients);
ObjectMapper MAPPER = new ObjectMapper();
try {
ds.save(product);
return Response.status(Status.ACCEPTED).entity(MAPPER.writeValueAsString(product)).build();
} catch (IOException e) {
return Response.status(Status.BAD_REQUEST).entity("{" + e + "}").build();
}
}
public Datastore dataBaseConnection() {
Morphia morphia = new Morphia();
MongoDBCon mdb = new MongoDBCon(); morphia.map(Product.class).map(Ingredient.class).map(Intolerances.class).map(Profil.class);
return morphia.createDatastore(mdb.getMongoClient(), "helge");
}
}
Vielen Dank.
Viele Grüße,
Helge
Zuletzt bearbeitet von einem Moderator: