Saya membangun layanan web generik dan perlu mengambil semua parameter kueri menjadi satu string untuk penguraian nanti. Bagaimana saya bisa melakukan ini?
Jawaban:
Anda dapat mengakses satu param melalui @QueryParam("name")
atau semua params melalui konteks:
@POST
public Response postSomething(@QueryParam("name") String name, @Context UriInfo uriInfo, String content) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}
Kuncinya adalah @Context
anotasi jax-rs , yang dapat digunakan untuk mengakses:
UriInfo, Request, HttpHeaders, SecurityContext, Providers
Menambahkan sedikit lebih banyak pada jawaban yang diterima. Dimungkinkan juga untuk mendapatkan semua parameter kueri dengan cara berikut tanpa menambahkan parameter tambahan ke metode yang mungkin berguna saat memelihara dokumentasi swagger.
@Context
private UriInfo uriInfo;
@POST
public Response postSomething(@QueryParam("name") String name) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}