response body api code example
Example 1: fetch response json or text
const _fetch = async props => {
const { endpoint, options } = props
return await fetch(endpoint, options)
.then(async res => {
if (res.ok) {
return await res.clone().json().catch(() => res.text())
}
return false
})
.catch(err => {
console.error("api", "_fetch", "err", err)
return false
})
}
Example 2: api response
Response
Status code
2xx -->> success
4xx -->> client side error
5xx -->> server side error
Header
meta data about your response
like Content-Type, Date and some other info
Body | Payload
The response we got from the server
and this where we do lots of validation
Example 3: response api
RESPONSE :(STATUS CODE,PAYLOAD(body),HEADER,COOKIE,
TIME(spent to get response))
1-Status Code:
2xx - Success
4xx - Client Error
5xx - Server Error
2-Payload(Body) :
The actual resource we got from the server.
Content type can be : plain text, json, xml, html, json etc.
3- Metadata about response to provide more information
4- Cookie
5- Time for getting spended time for the response
Example 4: response body api
Basicall we are checking response body
to verify if request matches with response.
In the response we are verifying
(body, status code, header, response time,
test structure of json against the given jsonSchema)
If file not under resources:
File schemaFile = new File("src/test/resources/postSuccessResponseSchema.json");
given()
.spec(adminReqSpec)
.contentType(ContentType.JSON)
.body(abcUtil.getRandomHeroPOJO_Payload()).
when()
.post("/HEROS").
then()
.body(matchesJsonSchema( schemaFile ) )
If schema file under resources:
given()
.spec(adminReqSpec)
.queryParam("nameContains","a")
.queryParam("gender","Female").
when()
.get("/abc/search").
then()
.time( lessThan(2000L));
.body(matchesJsonSchemaInClasspath("searchSpartanSchema.json") )