what to test in api code example

Example 1: how do you do positive api testing

How I do positive testing in api, 
	- I send valid path and query parameters, 
	- valid headers, 
	- valid request body to valid url and verify that 
	- response status code is correct and 
	- response body is as expected
    
How I do negative testing in api,
	- I send invalid request parameters
	- or invalid headers
	- or invalid request json body and verify 
    that response status code is not 200 
	- and response body contains error message 
    (for example there are 100 employees numbered
    from 1 to 100 I send 101 as a parameter and I
    should be able see 404 Not Found 
    The requested resource was not found.)

Example 2: have you done api testing

I have worked on API testing in my project and I used
POSTMAN for manually testing and REST ASSURED
java LIBRARY for automation.
I used JDBC and it is a Java-based data access technology
used for Java database connectivity. It provides classes and
interfaces to connect or communicate Java application with
database.
JDBC API is a Java API that can access any kind of data
stored in a Relational Database. It enables Java programs to
execute SQL statements.

Example 3: how to test rest api

First, I verify if each REST API end-point is working as
expected.
- I use POSTMAN for manual API testing and use
RESTASSURED library in Java for automation.
- I send GET, POST, PUT, DELETE type of requests and
verify response status code and response body.
- I also do positive/negative testing of API.


When I do positive testing,
I send
valid request parameters,
valid headers,
valid request json body to valid url and verify that
response status code is 200 and
Json response body data is as expected.
When I do negative testing,

I send
invalid request parameters,
or invalid headers,
or invalid request json body and verify
response status code is not 200.

and Json response body contains error message. (for example, there are 100
employees numbered from 1 to 100, I send 101 as an end-point and I should be
able see 404 Not Found. The requested resource was not found.

Example 4: what do you test in response 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") )

Example 5: what to test in api

Request Payload has
ENDPOINT (Specific URL where we send our requests to a certain web service. )
METHOD (Get•Post•Put•Patch•Delete)
HEADERS(Represents the metadata of request
or response. Like basically we can verify
the object type we are sending etc  )
PARAMETERS(Parameters are to specifiying 
even more about the request we are sending 
like what specific resources needs to be returned etc.)
BODY(Body is where we sent or received the request we made)
For the repsonse 
Basically 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)

Example 6: what to test in api

Basicall we are checking response body
to verify if request matches with response.
After that we are writing SQL query
to double check if database matches.
We can say happy path if all pass