Saya membangun layanan web generik dan perlu mengambil semua parameter kueri menjadi satu string untuk penguraian nanti. Bagaimana saya bisa melakukan ini?
91
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
Bagian kueri yang tidak diurai dari URI permintaan dapat diperoleh dari
UriInfo
objek:@GET public Representation get(@Context UriInfo uriInfo) { String query = uriInfo.getRequestUri().getQuery(); ... }
sumber
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"); }
ref
sumber