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!
Contact Us
If you have any questions or need help, please feel free to reach out to us at hello@keploy.io or reach out us on
or open a discussion on