[BAEL-7069] Pass list as a query parameter in Jersey (#15051)
* Pass list as a query parameter in Jersey * Address review comment * Address review comment --------- Co-authored-by: rajatgarg <rajatgarg@adobe.com>
This commit is contained in:
		
							parent
							
								
									63953b74f3
								
							
						
					
					
						commit
						da8167cf17
					
				| @ -0,0 +1,15 @@ | |||||||
|  | package com.baeldung.jersey.client.listdemo; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | import jakarta.ws.rs.GET; | ||||||
|  | import jakarta.ws.rs.Path; | ||||||
|  | import jakarta.ws.rs.QueryParam; | ||||||
|  | 
 | ||||||
|  | @Path("/") | ||||||
|  | public class JerseyListDemo { | ||||||
|  |     @GET | ||||||
|  |     public String getItems(@QueryParam("items") List<String> items) { | ||||||
|  |         return "Received items: " + items; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,9 @@ | |||||||
|  | package com.baeldung.jersey.client.listdemo; | ||||||
|  | 
 | ||||||
|  | import org.glassfish.jersey.server.ResourceConfig; | ||||||
|  | 
 | ||||||
|  | public class ListDemoApp extends ResourceConfig { | ||||||
|  |     public ListDemoApp() { | ||||||
|  |         packages("com.baeldung.jersey.client.listdemo"); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,57 @@ | |||||||
|  | package com.baeldung.jersey.client.listdemo; | ||||||
|  | 
 | ||||||
|  | import static org.junit.Assert.assertEquals; | ||||||
|  | 
 | ||||||
|  | import java.net.URI; | ||||||
|  | import java.util.Arrays; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | import org.glassfish.jersey.test.JerseyTest; | ||||||
|  | import org.glassfish.jersey.test.TestProperties; | ||||||
|  | import org.junit.Test; | ||||||
|  | 
 | ||||||
|  | import jakarta.ws.rs.core.Application; | ||||||
|  | import jakarta.ws.rs.core.Response; | ||||||
|  | import jakarta.ws.rs.core.UriBuilder; | ||||||
|  | 
 | ||||||
|  | public class JerseyListDemoUnitTest  extends JerseyTest { | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected Application configure() { | ||||||
|  |         enable(TestProperties.LOG_TRAFFIC); | ||||||
|  |         enable(TestProperties.DUMP_ENTITY); | ||||||
|  |         return new ListDemoApp(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void givenList_whenUsingQueryParam_thenPassParamsAsList() { | ||||||
|  |         Response response = target("/") | ||||||
|  |           .queryParam("items", "item1", "item2") | ||||||
|  |           .request() | ||||||
|  |           .get(); | ||||||
|  |         assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); | ||||||
|  |         assertEquals("Received items: [item1, item2]", response.readEntity(String.class)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void givenList_whenUsingCommaSeparatedString_thenPassParamsAsList() { | ||||||
|  |         Response response = target("/") | ||||||
|  |           .queryParam("items", "item1,item2") | ||||||
|  |           .request() | ||||||
|  |           .get(); | ||||||
|  |         assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); | ||||||
|  |         assertEquals("Received items: [item1,item2]", response.readEntity(String.class)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void givenList_whenUsingUriBuilder_thenPassParamsAsList() { | ||||||
|  |         List<String> itemsList = Arrays.asList("item1", "item2"); | ||||||
|  |         UriBuilder builder = UriBuilder.fromUri("/"); | ||||||
|  |         for (String item : itemsList) { | ||||||
|  |             builder.queryParam("items", item); | ||||||
|  |         } | ||||||
|  |         URI uri = builder.build(); | ||||||
|  |         String expectedUri = "/?items=item1&items=item2"; | ||||||
|  |         assertEquals(expectedUri, uri.toString()); | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user