package org.jersey2.jsonp.example; import java.text.SimpleDateFormat; import java.util.Calendar; import javax.json.Json; import javax.json.JsonArray; import javax.json.JsonArrayBuilder; import javax.json.JsonObject; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @Path("/students") public class StudentRestServiceResource { @GET @Path("/all") @Produces({MediaType.APPLICATION_JSON}) public JsonArray getAll(){ JsonArrayBuilder jsonArrayBuilder = Json.createArrayBuilder(); JsonObject jsonStudentObject; JsonObject jsonClassRoomObject; Student student; ClassRoom classRoom; for (int i = 1; i <= 100; i++) { student = new Student(); classRoom = new ClassRoom(i, "classRoom"+i); student.setSid(i); student.setName("student"+i); student.setDate(Calendar.getInstance().getTime()); student.setClassRoom(classRoom); jsonClassRoomObject = Json.createObjectBuilder() .add("cid", student.getClassRoom().getCid()) .add("cname", student.getClassRoom().getName()) .build(); jsonStudentObject = Json.createObjectBuilder() .add("sid", student.getSid()) .add("sname", student.getName()) .add("date", new SimpleDateFormat().format(student.getDate())) .add("classroom", jsonClassRoomObject) .build(); jsonArrayBuilder.add(jsonStudentObject); } return jsonArrayBuilder.build(); } @GET @Path("/{id}") @Produces({MediaType.APPLICATION_JSON}) public JsonObject getStudent(@PathParam("id")int id){ JsonObject jsonStudentObject; JsonObject jsonClassRoomObject; Student student = new Student(); student.setSid(id); student.setName("student"+id); student.setDate(Calendar.getInstance().getTime()); ClassRoom classRoom = new ClassRoom(id, "classRoom"+id); student.setClassRoom(classRoom); jsonClassRoomObject = Json.createObjectBuilder() .add("cid", student.getClassRoom().getCid()) .add("cname", student.getClassRoom().getName()) .build(); jsonStudentObject = Json.createObjectBuilder() .add("sid", student.getSid()) .add("sname", student.getName()) .add("date", new SimpleDateFormat().format(student.getDate())) .add("classroom", jsonClassRoomObject) .build(); return jsonStudentObject; } @POST @Produces({MediaType.APPLICATION_JSON}) @Consumes({MediaType.APPLICATION_JSON}) public JsonObject saveStudent(JsonObject jsonObject){ return jsonObject; } @PUT @Produces({MediaType.APPLICATION_JSON}) @Consumes({MediaType.APPLICATION_JSON}) public JsonObject updateStudent(JsonObject jsonObject) throws Exception{ int sid = jsonObject.getInt("sid"); String sname = jsonObject.getString("sname"); String date = jsonObject.getString("date"); JsonObject jsonClassRoomObject = jsonObject.getJsonObject("classroom"); int cid = jsonClassRoomObject.getInt("cid"); String cname = jsonClassRoomObject.getString("cname"); ClassRoom classRoom = new ClassRoom(cid, cname); Student student = new Student(sid,sname,new SimpleDateFormat().parse(date),classRoom); System.out.println(student); return jsonObject; } @DELETE @Path("/{id}") @Produces({MediaType.APPLICATION_JSON}) public Response deleteStudent(@PathParam("id")int id){ return Response.ok("{\"id\":"+1+",\"status\":\"200\"}",MediaType.APPLICATION_JSON).build(); } }