Thursday 27 July 2023

Understanding the Core Components of a REST API: Unraveling the API Client, Request, Server, and Response

 


Check below link for question and answers with the code:



🔴How well do you know APIs?


Let's delve into the 4 Components of a REST API! 🚀🤔

1. API client
2. API request
3. API server
4. API response

📌API client


The API client is the software or application that initiates requests to the API server to retrieve or manipulate data.
It acts as an intermediary between the end-user or application and the API server.
The API client is responsible for sending properly formatted requests to the server and handling the responses received.

👉Example:

Let's say you have a mobile application that displays weather information for a user's location.
The mobile app acts as the API client in this scenario.
When the user opens the app, it sends a request to the weather API server to fetch the current weather data for the user's location.






📌API request:


The API request is a message sent by the API client to the API server, indicating the action it wants to perform.

This request contains information such as the specific API endpoint (URL), request method (GET, POST, PUT, DELETE, etc.), headers, and sometimes data (e.g., in the case of a POST request).

👉Example:

In the weather app example, the API request might be a GET request to the weather API server with the endpoint like "https://lnkd.in/g6f6fXVj" to get the current weather data for the user's location.





📌API server:


The API server is a software application that receives API requests from clients, processes those requests, interacts with the database or other services as needed, and generates a response back to the API client.
It acts as the gateway to the backend system, providing access to the requested resources.

👉Example:

The weather API server receives the GET request from the mobile app's API client, processes the request, queries the weather data for the user's location from its database or external services, and then generates a response containing the weather information.

📌API response:


The API response is the message sent by the API server to the API client in reply to the API request.
It contains the data requested by the client, along with any relevant metadata or status codes to indicate the success or failure of the request.

👉Example:

After processing the GET request from the weather app's API client, the API server generates an API response containing the current weather data for the user's location, such as temperature, humidity, and weather conditions.
This response is then sent back to the API client (mobile app), which can then display the weather information to the user.


Image credit: Postman


#sidpost #api #software #softwaretesting #career #technology #testautomation


Learn (API-Microservice)Testing+ Selenium UI Automation-SDET with Self Paced Videos prepared by FAANG employees and LIVE Doubt Session 

SDET TRANING VIDEOS AVAILABLE with Live Doubt Session Check Training Page for Course Content or reach out @whatsapp +91-9619094122. 
This includes classnotes, 500+ interview questions, 3 projects, Java Coding question set for product companies along with career guidance from FAANG employees for Automation and SDET.

For more details Whatsapp : https://lnkd.in/dnBWDM33





Course_001


https://topmate.io/sidharth_shukla/110008

API Automation +
UI Automation +
Mobile Testing +
ChatGPT For Test Automation +
Jenkins-GIT-Docker

Course_002

https://topmate.io/sidharth_shukla/411813

API Automation +
UI Automation +
Jenkins-GIT-Docker

Course_003

https://topmate.io/sidharth_shukla/411812

API Automation +
ChatGPT for Test Automation +
Jenkins-GIT

Course_004

https://topmate.io/sidharth_shukla/411804

ChatGPT for Test Automation
Course_005

https://topmate.io/sidharth_shukla/411810

API Automation +
Jenkins-GIT

*******************************************************************
For any doubts or career guidance from me, reach out here : https://topmate.io/sidharth_shukla

********************************************************************

Do remember that knowing Linux is one of the most important aspect to work as an SDET.

Basic Linux Commands for Automation QA


****************************************

TOP 15 BDD - CUCUMBER Interview Q&A


************************************************

✍️AUTHORLinkedIn Profile

************************************************



*************************************************



SeleniumWebdriver Automation Testing Interview Questions:

https://automationreinvented.blogspot.com/search/label/SeleniumWebdriver

API Testing Interview Question Set:

https://automationreinvented.blogspot.com/2022/03/top-80-api-testing-interview-questions.html

DevOps Interview Q&A:

https://automationreinvented.blogspot.com/2021/11/top-11-devops-interview-questions-and.html 

Kubernetes Interview Question Set

https://automationreinvented.blogspot.com/search/label/Kubernetes

Docker Interview Question Set

https://automationreinvented.blogspot.com/Docker

Linux Interview question Set

https://automationreinvented.blogspot.com/search/label/Linux

Automation Testing/SDET Framework Design

https://automationreinvented.blogspot.com/search/label/FrameworkDesign

Java Related Interview Question Set

https://automationreinvented.blogspot.com/search/label/Java

GIT Interview Question Set:

https://automationreinvented.blogspot.com/2021/09/top-40-git-interview-questions-and.html

Coding Interview Question Set:

https://automationreinvented.blogspot.com/search/label/Coding%20Questions

Mobile Testing Interview Question Set:

https://automationreinvented.blogspot.com/search/label/Mobile%20Testing

Python Interview Question Set for QAE - SDET - SDE:

https://automationreinvented.blogspot.com/search/label/Python

Monday 24 July 2023

How to Automate SOAP API using Rest Assured with real-time examples ?

 



Check below link for question and answers with the code:




Introduction:

💥SOAP (Simple Object Access Protocol) is a protocol used for exchanging structured information in the implementation of web services. It uses XML to define the message format and relies on HTTP, SMTP, TCP, or other transport protocols for message transmission.

💥Rest Assured is a Java library that provides a domain-specific language (DSL) for writing powerful and easy-to-read API tests for RESTful web services. It simplifies the process of testing RESTful APIs by providing a range of built-in functions and methods for making HTTP requests and validating responses. Rest Assured is widely used for automated API testing due to its simplicity and flexibility.


💥Before you jump into this post, make sure you know about the Automation of API methods like GET, POST, DELETE using Rest Assured, if not refer to the post here👉


Learn how to automate SOAP APIs using Rest Assured with real-time
examples. 

Rest Assured is a powerful Java library that simplifies API testing for SOAP web services. Follow our step-by-step guide and practical examples to efficiently automate your SOAP API tests. Boost your testing productivity and ensure the reliability of your webservices with this comprehensive tutorial. Get started today and
streamline your API automation process with Rest Assured.


To automate SOAP APIs with RestAssured, you need to set up the project dependencies, configure the test environment, and write test scripts. Below is an example of how to do this:

💥Step 1:

Set up the Project Create a new Java project in your favorite IDE and add the required dependencies. In this example, we'll use Maven for dependency management. Add the following dependencies to your pom.xml file:


<dependencies>
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>4.3.3</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>7.4.0</version>
        <scope>test</scope>
    </dependency>
</dependencies>


Java Coding Interview Questions and Answers

GIT Interview Questions and Answers

💥Step 2:

Configure the Test Environment Create a new Java class for your test and configure the base URI for the SOAP API:


import io.restassured.RestAssured;
import org.testng.annotations.BeforeClass;

public class SoapAPITest {
    @BeforeClass
    public void setUp() {
        RestAssured.baseURI = "https://example.com/soap-api"; // Replace with your SOAP API URL
    }
}



💥Always make sure to learn about JSON when you are dealing with APIs:
Demystifying JSON: Understanding Simple JSON, JSON Arrays, and JSON Objects



💥Step 3:

Write Test Scripts Now you can start writing test scripts to interact with the SOAP API using RestAssured. Below is an example of how to make a SOAP request and validate the response:


import io.restassured.response.Response;
import org.testng.annotations.Test;

import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;

public class SoapAPITest extends BaseTest {
    @Test
    public void testSoapRequest() {
        String soapRequest = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
                            "xmlns:web=\"http://www.example.com/webservice\">" +
                            "<soapenv:Header/>" +
                            "<soapenv:Body>" +
                            "<web:YourSoapRequest>" +
                            "<web:Parameter1>Value1</web:Parameter1>" +
                            "<web:Parameter2>Value2</web:Parameter2>" +
                            "</web:YourSoapRequest>" +
                            "</soapenv:Body>" +
                            "</soapenv:Envelope>";

        Response response = given()
                .contentType("text/xml")
                .body(soapRequest)
            .when()
                .post("/your-soap-endpoint") // Replace with your SOAP endpoint
            .then()
                .statusCode(200)
                .body("Envelope.Body.YourSoapResponse", equalTo("ExpectedValue")) // Replace with your expected value
                .extract().response();

        // Print the SOAP response
        System.out.println(response.getBody().asString());
    }
}


Note: In the above example, you need to replace the placeholders (e.g., https://example.com/soap-api, /your-soap-endpoint, Value1, Value2, ExpectedValue) with your actual SOAP API URL, endpoint, request parameters, and expected values.

With the above setup and test script, you can now run your RestAssured tests to automate SOAP API testing efficiently.


💥How do I loop around Array, List and Map?


💥Lets take one more real time API example:

To automate the SOAP API (http://www.dneonline.com/calculator.asmx?WSDL) using Rest Assured, you'll need to use the Rest Assured library along with the SAAJ (SOAP with Attachments API for Java) library. 

In Rest Assured we do not have built-in support to handle SOAP directly, so we'll leverage SAAJ to handle the SOAP request and response.

Here's a Java code example to perform the "Add" operation using Rest Assured and SAAJ:

import org.testng.annotations.Test;
import io.restassured.RestAssured;
import static io.restassured.module.jsv.JsonSchemaValidator.*;

import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPMessage;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.StringReader;

public class SoapApiTest {

    @Test
    public void testAddOperation() {
        String soapRequestBody = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\">\n"
                + "   <soapenv:Header/>\n"
                + "   <soapenv:Body>\n"
                + "      <tem:Add>\n"
                + "         <tem:intA>10</tem:intA>\n"
                + "         <tem:intB>20</tem:intB>\n"
                + "      </tem:Add>\n"
                + "   </soapenv:Body>\n"
                + "</soapenv:Envelope>";

        // Send the SOAP request using SAAJ and Rest Assured
        SOAPConnectionFactory soapConnectionFactory;
        SOAPConnection soapConnection = null;
        try {
            soapConnectionFactory = SOAPConnectionFactory.newInstance();
            soapConnection = soapConnectionFactory.createConnection();
            SOAPMessage soapRequest = MessageFactory.newInstance().createMessage(null,
                    new StringReader(soapRequestBody));
            SOAPMessage soapResponse = soapConnection.call(soapRequest, "http://www.dneonline.com/calculator.asmx");

            // Extract the response body from the SOAP response
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            SOAPBody responseBody = soapResponse.getSOAPBody();
            StreamSource source = new StreamSource(responseBody.extractContentAsDocument());
            StreamResult result = new StreamResult(System.out);
            transformer.transform(source, result);

            // Add your assertions here for validating the response
            // For example, you can use Rest Assured to validate the JSON response
            RestAssured.given().contentType("application/json").body(result.getWriter().toString())
                    .when().post("/your-validation-endpoint")
                    .then().assertThat().body(matchesJsonSchemaInClasspath("your-json-schema.json"));

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (soapConnection != null) {
                try {
                    soapConnection.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

This code sends the SOAP request to the "Add" operation of the SOAP API, extracts the SOAP response, and then you can use Rest Assured to validate the JSON response against a JSON schema.

Keep in mind that Rest Assured is primarily designed for RESTful API testing, so using it for SOAP APIs requires a bit of additional work with SAAJ. For pure SOAP testing, you may consider using dedicated SOAP testing libraries like Apache CXF or Spring WS.

⭐️⭐️⭐️⭐️⭐️

📌YouTube channel:
https://lnkd.in/gHJ5BDJZ

📌Telegram group:
https://lnkd.in/gUUQeCha

📌Schedule 1:1 call:
https://lnkd.in/ddayTwnq

📌Medium blogs:
https://lnkd.in/gkUX8eKY

*******************************************************************
For any doubts or career guidance from me, reach out here : https://topmate.io/sidharth_shukla

********************************************************************

Do remember that knowing Linux is one of the most important aspect to work as an SDET.

Basic Linux Commands for Automation QA


****************************************

TOP 15 BDD - CUCUMBER Interview Q&A


************************************************

✍️AUTHORLinkedIn Profile

************************************************

Learn (API-Microservice)Testing+ Selenium UI Automation-SDET with Self Paced Videos prepared by FAANG employees and LIVE Doubt Session 

SDET TRANING VIDEOS AVAILABLE with Live Doubt Session Check Training Page for Course Content or reach out @whatsapp +91-9619094122. 
This includes classnotes, 500+ interview questions, 3 projects, Java Coding question set for product companies along with career guidance from FAANG employees for Automation and SDET.

For more details whatsapp : https://lnkd.in/dnBWDM33

Course_001API Automation +
UI Automation +
Mobile Testing +
ChatGPT For Test Automation +
Jenkins-GIT-Docker
Course_002API Automation +
UI Automation +
Jenkins-GIT-Docker
Course_003API Automation +
ChatGPT for Test Automation +
Jenkins-GIT
Course_004ChatGPT for Test Automation
Course_005API Automation +
Jenkins-GIT

************************************************


SeleniumWebdriver Automation Testing Interview Questions:

https://automationreinvented.blogspot.com/search/label/SeleniumWebdriver

API Testing Interview Question Set:

https://automationreinvented.blogspot.com/2022/03/top-80-api-testing-interview-questions.html

DevOps Interview Q&A:

https://automationreinvented.blogspot.com/2021/11/top-11-devops-interview-questions-and.html 

Kubernetes Interview Question Set

https://automationreinvented.blogspot.com/search/label/Kubernetes

Docker Interview Question Set

https://automationreinvented.blogspot.com/Docker

Linux Interview question Set

https://automationreinvented.blogspot.com/search/label/Linux

Automation Testing/SDET Framework Design

https://automationreinvented.blogspot.com/search/label/FrameworkDesign

Java Related Interview Question Set

https://automationreinvented.blogspot.com/search/label/Java

GIT Interview Question Set:

https://automationreinvented.blogspot.com/2021/09/top-40-git-interview-questions-and.html

Coding Interview Question Set:

https://automationreinvented.blogspot.com/search/label/Coding%20Questions

Mobile Testing Interview Question Set:

https://automationreinvented.blogspot.com/search/label/Mobile%20Testing

Python Interview Question Set for QAE - SDET - SDE:

https://automationreinvented.blogspot.com/search/label/Python

 

All Time Popular Posts

Most Featured Post

API Status Codes with examples for QA-Testers

  🔺 LinkedIn: https://www.linkedin.com/in/sidharth-shukla-77b53145/ 🔺 Telegram Group:  https://t.me/+FTf_NPb--GQ2ODhl 🏮In API testing, it...