Sample REST API with Spring-Boot and XMLβ
Explore creating REST APIs with XML responses using Spring-Boot. Discover the ease of integrating XML serialization through JAXB. Let's dive right in!
Donβt have Keploy installed yet?
Before running this sample, make sure Keploy is installed on your system.
π Go to Installation GuidePre-Requisite π οΈβ
- Install Java 17 and set JAVA_HOME environment variable.
- Install Maven
- Install Docker (optional)
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
Record Test Casesβ
keploy record -c "java -jar target/XML-0.0.1-SNAPSHOT.jar"
Then, invoke the API using curl or your favorite API testing tool.
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>
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.
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!