REST: Building a Generic Response
So far when we send a response to the client we have always send the status code as 200
in case of successful response but a good REST API design API sends different status code in response for different situations.
For example, we should send the status code of 201
in case of POST
method, which broadcasts to the client that the resource has been successfully created.
public Response getAllStudents(@Context HttpHeaders headers)
{
List<Student> students = studentService.getAllStudents();
GenericEntity<List<Student>> entity = new GenericEntity<List<Student>>(students){};
return Response.status(Status.OK).entity(entity).build();
}
The response class contains the HTTP line, HTTP headers and the HTTP message body.
@POST
@Produces(MediaType.APPLICATION_XML)
public Response addStudent(Student student)
{
String response = studentService.addStudent(student);
return Response.status(Status.CREATED).entity(response).build();
}
So for the POST
method the 201, Created status is sent. Hence, with the use of the Response
class, more generic and informative response can be sent to the client.