Estou tentando fazer um CRUD com uma API REST usando o Apache Camel.
Na classe que extend RouteBuilder, como faço para declarar os endpoints?
Já implementei a classe e fiz o get para retornar todos os Events do BD e está funcionando, mas não consigo fazer nem achar nenhum exemplo para o post (para incluir um Event) e as demais operação de CRUD (put, delete). Alguém pode ajudar?
Segue a classe ApplicationResource:
package com.eventapi.eventapi.resource;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.model.rest.RestBindingMode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import com.eventapi.eventapi.service.EventService;
@Component
public class ApplicationResource extends RouteBuilder {
@Autowired
private EventService service;
@Override
public void configure() throws Exception {
restConfiguration().component("servlet").port(8080).host("localhost").bindingMode(RestBindingMode.json);
rest().get("hello-world").produces(MediaType.APPLICATION_JSON_VALUE).route()
.setBody(constant("Welcome Apache camel")).endRest();
rest().get("/getevents").produces(MediaType.APPLICATION_JSON_VALUE).route().setBody(() -> service.listAll() )
.endRest();
// rest().post("/addOrder").consumes(MediaType.APPLICATION_JSON_VALUE).type(Event.class).outType(Event.class)
// .route().process(Exchange.).endRest();
}
}
EventService possui os métodos listAll, findById, save, updateEvent e delete