Spring boot, apache camel dsl, CRUD

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

1 curtida

Fala mestre , se eu não me engano caso voce queira chamar algum service

voce precisa dizer qual seria a “direção” por exemplo :

    rest()
        .post("/order").type(GrubHubOrder.class).consumes("application/json")
        .bindingMode(RestBindingMode.json)
        .produces("application/json")
        .to("direct:order"); <<< 

Se possível sobe essa doidera ai pro git