Handle HTTP Query Parameters in Get Request using REST Assured

Profile picture for user devraj

Query parameters are a defined set of parameters attached to the end of a url. They are extensions of the URL that are used to help define specific content or actions based on the data being passed. To append query params to the end of a URL, a ‘?’ Is added followed immediately by a query parameter.

To add multiple parameters, an ‘&’ is added in between each. These can be created by any variation of object types or lengths such as String, Arrays and Numbers. The following is an example:

Examples:

http://example.com/path?category=clothing&products=t-shirt
https://reqres.in/api/users?page=2

Code:

import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import io.restassured.RestAssured;
import static io.restassured.RestAssured.given;

public class DummyAPI 
{
	@BeforeClass
	public void setup() 
	{
		RestAssured.baseURI = "https://reqres.in/";		
		RestAssured.basePath = "/api/";
	}
			
	@Test
	public void statusCodeVerification() 
	{
		given()
			.queryParam("page", "2")
		.when()
			.get("/users/")
		.then()
			.statusCode(200);
	}
}

Here,

RestAssured: REST Assured is a Java DSL for simplifying testing of REST based services built on top of HTTP Builder. It supports POST, GET, PUT, DELETE, HEAD, PATCH and OPTIONS requests and to verify the response of these requests. 

baseURI: The base URI that's used by REST assured when making requests if a non-fully qualified URI is used in the request. Default value is http://localhost.

basePATH: A base path that's added to the baseURI by REST assured when making requests. E.g. let's say that the baseURI is http://localhost and basePath is /resource.

given(): Start building the request part of the test io.restassured.specification. 

.param() or queryParam(): If you don't specify which, REST Assured will assume GET params are query params and POST params are form params

.when(): Where we specify type of request like get, post etc. Like for get we have used .get()

.then(): Returns a validatable response that's lets you validate the response. 

if you have multiple param you can use multiple .queryParam().