v2.0.1 Update User API Fix

experiment
Yan 1 week ago
parent 00222c595a
commit b63f746475

@ -10,6 +10,10 @@ get {
auth: basic
}
headers {
operationName: findUsers
}
auth:basic {
username: cxfrs
password: password

@ -0,0 +1,28 @@
meta {
name: updateUser
type: http
seq: 3
}
post {
url: http://localhost:9090/services/api/user
body: json
auth: basic
}
headers {
Content-Type: application/json
X-MethodName: updateUser
}
auth:basic {
username: cxfrs
password: password
}
body:json {
{
"id": 3,
"name": "Bruce Wayne"
}
}

@ -81,12 +81,6 @@
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-jackson-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-disruptor-starter</artifactId>
</dependency>
<!-- jax-rs json provider from jackson -->
<dependency>
<groupId>com.fasterxml.jackson.jakarta.rs</groupId>
<artifactId>jackson-jakarta-rs-json-provider</artifactId>

@ -24,12 +24,10 @@ public class CamelRouter extends RouteBuilder {
from("cxfrs:/api?resourceClasses=" + UserService.class.getName() + "&bindingStyle=SimpleConsumer"
+ "&providers=jaxrsProvider&loggingFeatureEnabled=true").to("log:cxfrs-log?showAll=true")
.to("bean-validator:user").setHeader(Exchange.BEAN_METHOD_NAME, simple("${header.operationName}"))
.setHeader(Exchange.BEAN_METHOD_NAME, simple("${header.operationName}"))
.to("activemq6:queue:" + queueName);
from("activemq6:queue:"+queueName).to("log:activemq6-log?showAll=true").to("disruptor:UserDisruptor");
from("disruptor:UserDisruptor").to("log:disruptor-log?showAll=true").bean(UserServiceImpl.class).marshal()
from("activemq6:queue:" + queueName).to("bean-validator:user").bean(UserServiceImpl.class).marshal()
.json(JsonLibrary.Jackson);
}

@ -38,7 +38,7 @@ public class SecurityConfig {
http.authorizeHttpRequests(
(authorize) -> authorize.requestMatchers(HttpMethod.GET, "/**").hasAuthority(ROLE_BACKEND)
.requestMatchers(HttpMethod.POST, "/**").hasAuthority(ROLE_SERVER))
.httpBasic(Customizer.withDefaults());
.httpBasic(Customizer.withDefaults()).csrf(csrf -> csrf.disable());
return http.build();
}

@ -1,5 +1,6 @@
package com.example.camel;
import java.io.Serializable;
import java.util.StringJoiner;
import jakarta.validation.constraints.NotNull;
@ -9,7 +10,8 @@ import jakarta.validation.constraints.Size;
* User entity
*
*/
public class User {
@SuppressWarnings("serial")
public class User implements Serializable {
@NotNull(message = "custom message")
private Integer id;

@ -5,12 +5,11 @@ import java.util.Collection;
import jakarta.validation.Valid;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.PUT;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
/**
* Service interface for managing users.
@ -45,9 +44,9 @@ public interface UserService {
* @param user
* the user
*/
@PUT
@POST
@Path("/user")
@Consumes(MediaType.APPLICATION_JSON)
Response updateUser(@Valid User user);
User updateUser(@Valid User user);
}

@ -4,8 +4,6 @@ import java.util.Collection;
import java.util.Map;
import java.util.TreeMap;
import jakarta.ws.rs.core.Response;
public class UserServiceImpl implements UserService {
private final Map<Integer, User> users = new TreeMap<>();
@ -27,9 +25,9 @@ public class UserServiceImpl implements UserService {
}
@Override
public Response updateUser(User user) {
public User updateUser(User user) {
users.put(user.getId(), user);
return Response.noContent().status(Response.Status.CREATED).build();
return user;
}
}
Loading…
Cancel
Save