Sample REST API with Spring-Boot and XML
Introduction
🌟 Explore creating REST APIs with XML responses using Spring-Boot. Discover the ease of integrating XML serialization through JAXB. Let's dive right in! 🚀
Pre-Requisite 🛠️
Get Started! 🎬
Clone and Build the Application
git clone https://github.com/keploy/samples-java.git
cd spring-boot-xml/naive-spring-boot
mvn clean install
Run the Application
Start the Spring Boot application with:
mvn spring-boot:run
Note: For Windows users, commands remain the same.
API Endpoints 📡
Get User Data (XML)
- Endpoint:
GET /api/user
Make a request using curl
:
curl -X GET -H \"Accept: application/xml\" http://localhost:8080/api/user
- Endpoint:
GET /api/users
Make a request using curl
:
curl -X GET http://localhost:8080/api/users -H "Accept: application/xml"
- Endpoint:
GET /api/people
Make a request using curl
:
curl -X GET http://localhost:8080/api/people -H "Accept: application/xml"
Example XML Response
<User>
<name>John Doe</name>
<age>30</age>
<phone>0101233333</phone>
</User>
Integrating with Keploy 📥
Harness Keploy's test generation capabilities easily:
Install Keploy
curl --silent -O -L https://keploy.io/install.sh && source install.sh
or
Install the cloud version -
curl --silent -O -L https://keploy.io/ent/install.sh && source install.sh
Record Test Cases
keploy record -c "java -jar target/XML-0.0.1-SNAPSHOT.jar"
Start recording interactions by running:
keploy record -c "java -jar target/XML-0.0.1-SNAPSHOT.jar"
Then, invoke the API using curl
or your favorite API testing tool.
Run Generated Tests
Execute recorded tests:
keploy test -c "java -jar target/XML-0.0.1-SNAPSHOT.jar" --delay 10
Review generated test reports in Keploy/reports
.
Handling Failing Tests ⚠️
If you encounter failing tests due to variable or irrelevant data, like timestamps or dynamically generated fields, you can add them to the global noise configuration in your keploy.yml
:
Example:
globalNoise:
global:
header.Date: []
body:
# To ignore some values for a field, pass regex patterns to the corresponding array value
UserList: []
After updating keploy.yml
with the above configuration, rerun your tests, and the issue should be resolved.
Dependencies 📚
- Spring Boot
- Spring Web
- JAXB (XML serialization)
Wrapping Up 🎉
Fantastic! You've successfully navigated creating and testing XML APIs with Spring Boot and Keploy. Keep exploring, experimenting, and innovating! If you have any queries, we're here to help!