<dependencies>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.33</version>
</dependency>
</dependencies>
public class User {
private String name;
private int age;
}
@Path("/users")
public class UserResource {
@GET
@Path("/{id}")
@Produces(MediaType.APPLICATION_JSON)
public User getUserById(@PathParam("id") int id) {
User user = new User("John", 25);
return user;
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response createUser(User user) {
return Response.status(Response.Status.CREATED).build();
}
}
public class MyApplication extends ResourceConfig {
public MyApplication() {
register(UserResource.class);
register(JacksonJsonProvider.class);
}
}
public class Main {
public static void main(String[] args) throws IOException {
URI baseUri = UriBuilder.fromUri("http://localhost/").port(8080).build();
ResourceConfig config = new MyApplication();
HttpServer server = GrizzlyHttpServerFactory.createHttpServer(baseUri, config);
server.start();
System.out.println("Jersey app started at " + baseUri);
System.in.read();
server.stop();
}
}