Search code examples
rest-assuredrequest-headerswebautomationrest-assured-jsonpathrest

How do I pass the email in alias header and obtain specific responses?


*New to Rest Assured

Question:
How do I pass the email (User email required for GET endpoint) in the alias header and obtain the session ID as well as the username ID from the response?

Details: The [GET] users/signin endpoint requires a user email and an api key.

Curl:

curl -X GET "https://SomeWebSite.com/apiservice/users/signin?challengeMethod=EMAIL" -H "accept: application/json" -H "alias: [email protected]" -H "X-API-KEY: d5a1d56d51d651d651d51d651d6d6d1"

Response:

{
"session": "ID inside of here",
"challengename": "CUSTOM_CHALLENGE",
"challengeSentTo": "[email protected]",
"username": "5d654d6d65dd64d66adsb6a4"
}

My code:

public class AuthResponseTest {

    public static final String baseUri = "https://qa-mobile-app-auth-ext.clearcollateral.com/";
    public static final String basePath = "/apiservice/users ";

public String[] getSignIn() {

       return RestAssured
                .with()
                .log().all()
                .header("X-API-KEY", "API KEY IN HERE")
               .header("alias", "email here")
                .contentType(ContentType.JSON)
                .accept(ContentType.JSON)
                .baseUri(baseUri)
                .basePath(basePath)
               .when()
               .post("/users/signin")
               .then()
               .log().all()
               .statusCode(200)
       .extract().as(String[].class);
    }
    @Test
    public void testSignIn() {
        String[] authsignin =  getSignIn();
        System.out.println(authsignin);
    }
}

Solution

  • Try;

    .header("alias", "[email protected]")