クエリは実際には URL であるため、REST は複雑なクエリを処理するようには設計されていません。リソースを取得するときは、必要なリソースの ID を指定します。これは単なる数字または文字列であり、たとえば URL で簡単に表現できます。
http://host/employee/57
従業員57を取得します。要件がより複雑な場合は、いくつかのパラメーターを渡す検索メソッドを使用することをお勧めします。ここで使用できます@QueryParam
が、これは実際には純粋な形式の REST ではありません。
データを POST または PUT する場合は、GET を行う場合と同じ URL を使用しますが、今回はコンテンツ本文でデータを送信します。オブジェクトをシリアル化して GET リクエストに返すことができるので、クライアントもオブジェクトをシリアル化して PUT または POST で送信できるようにする必要があります。
GET と POST の例を次に示します。
@XmlType
public class Employee {
private int id;
private String name;
//getters and setters
}
@Path("/employee")
public class EmployeeService {
@GET
@Path("/{id}")
@Produces(MediaType.APPLICATION_XML)
public Employee get(@PathParam("id") String id) {
Employee e = employeeDao.getEmployee(id);
if (e != null) {
return e;
} else {
throw new WebApplicationException(404);
}
}
@POST
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
public Employee post(Employee employee) {
return employeeDao.insertEmployee(employee); //Assumes your DAO sets the ID
}
}