🛠️ OpenAPI2SoapUI ReleaseSwaggerJavaLicense: LGPL v3

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification)

Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI application.

This repository is intended for :octocat:community use, it can be modified and adapted without commercial use. If you need a version, support or help for your enterprise or project, please contact us 📧 devrel@apiaddicts.org

TwitterDiscordLinkedInFacebookYouTube

🙌 Join the OpenAPI2SoapUI Adopters list

📢 If OpenAPI2SoapUI is part of your organization's toolkit, we kindly encourage you to include your company's name in our Adopters list. 🙏 This not only significantly boosts the project's visibility and reputation but also represents a small yet impactful way to give back to the project.

OrganizationDescription of Use / Referenc
CloudAppiApification and generation of microservices
RSIGeneration of microservices

👩🏽‍💻 Contribute to ApiAddicts

We're an inclusive and open community, welcoming you to join our effort to enhance ApiAddicts, and we're excited to prioritize tasks based on community input, inviting you to review and collaborate through our GitHub issue tracker.

Feel free to drop by and greet us on our GitHub discussion or Discord chat. You can also show your support by giving us some GitHub stars ⭐️, or by following us on Twitter, LinkedIn, and subscribing to our YouTube channel! 🚀

"Buy Me A Coffee"

⚙️ Functionalities

Here you can check the definition of the API Swagger to SoapUI

  • Base64 Decoding of Open API Specification Content
  • Parse Open API Specification Content into swagger-core representation as Java POJO
  • Create SoapUI Project
    • Add OAuth 2.0 Profiles to SoapUI Project
    • Add new REST Service to SoapUI Project
      • Add Endpoints to REST Service
      • Set basePath to REST Service
      • Add Resources (Paths) to REST Service
        • Add Methods (Verbs / Operations) to each Resource
          • Set REST Request to each Method
            • Set Credentials (OAuth 2.0 Profile)
            • Set Parameters examples to REST Request
            • Set Request Body example to REST Request
            • Set Custom Headers to REST Request
    • Add new TestSuites to SoapUI Project for each Method
      • Add TestCases to TestSuite
        • Add Execution Test Step (REST Request)

Nomenclature used:

  • SoapUI Project: {apiName}_{apiVersion}
  • REST Service: {apiName}
  • Resource: {path}
  • Method: {httpMethodInUppercase}
  • Request: {defaultRequestName}
  • Test Suite: {path}_{apiName}_{apiVersion}-{httpMethodInUppercase}-Suite (run type SEQUENTIAL, abortOnError false)
  • Test Case: {httpMethodInUppercase}_Case{CaseDescription}
  • Test Step: Execution_{httpMethodInUppercase}_TestStep

The variables are obtained from:

  • apiName: property apiName of request body
  • apiVersion: version defined in the 'info' section of the OpenAPI Spec
  • path: each path defined in the OpenAPI Spec
  • httpMethodInUppercase: each HTTP methods of paths defined in OpenAPI Spec

Technology stack

Overview

TechnologyDescription
Core FrameworkSpring Boot 3

Server - Backend

TechnologyDescription
JDK 21Java Development Kit
Spring Boot 3Framework to ease the bootstrapping and development of new Spring Applications
Maven 3Dependency Management
Tomcat 10.1+Server deploy WAR (Jakarta EE / Servlet 6)

Libraries and Plugins

TechnologyDescription
LombokNever write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
Hibernate ValidatorExpress validation rules in a standardized way using annotation-based constraints and benefit from transparent integration with a wide variety of frameworks.
Springdoc OpenAPI UIOpenAPI 3 Library for spring boot projects. Is based on swagger-ui, to display the OpenAPI description.
SoapUI core moduleSoapUI is the world's leading Functional Testing tool for SOAP and REST testing.
Swagger ParserParses OpenAPI definitions in JSON or YAML format into swagger-core representation as Java POJO, returning any validation warnings/errors.

📑 Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

External dependencies

The project use "SoapUI Core Module" dependency, which is not maven dependency, so you must have internet access to download the dependency from the external repository, below is the repository configuration inside the pom.xml file.

 ...
<repositories>
<repository>
<id>SmartBearPluginRepository</id>
<url>https://rapi.tools.ops.smartbear.io/nexus/content/groups/public/</url> </repository>
</repositories>
...

Running the application with IDE

There are several ways to run a Spring Boot application on your local machine. One way is to execute the main method in the Openapi2SoapUIApplication class from your IDE.

Example (Eclipse and its offshoots) :

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open IDE
    • File -> Import -> Existing Maven Project -> Navigate to the folder project
    • Select the project
  • Choose the Spring Boot Application file (search for @SpringBootApplication)
  • Right Click on the file and Run as Java Application
  • URL to access: http://localhost:8080/api-openapi-to-soapui/v1/soap-ui-projects

Running the application locally with Maven

Alternatively you can use the Spring Boot Maven plugin like so:

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the server type
$ mvn spring-boot:run

Running the application in Docker

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the docker container type
$ mvn clean package -Pjar
$ docker-compose up -d

Running the application deploying WAR on Tomcat

The code can also be built into a war and then deployed on a Tomcat server.

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui-<version>.war

Files and Directories Structure

The project directory has a particular directory structure. A representative project is shown below:

Project Structure

.
├── src
│ └── main
│ └── java
│ ├── org.apiaddicts.apitools.openapi2soapui
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.config
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.constants
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.controller
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.error
│ ├── org.apiaddicts.apitools.openapi2soapui.error.exceptions
│ ├── org.apiaddicts.apitools.openapi2soapui.error.validators
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.model
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.request
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.service
│ │
│ └── org.apiaddicts.apitools.openapi2soapui.util
├── src
│ └── main
│ └── resources
│ ├── static
│ │ └── api.yaml
│ │ │ ├── application.properties
│ ├── log4j.properties
│ └── messages.properties
├── JRE System Library
├── Maven Dependencies
├── src
├── target
│ └──openapi2soapui-1.0.2
├── .gitlab-ci.yaml
├── lombok.config
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md

Packages

  • config - app configurations;
  • constants - app contants;
  • controller - listen to the client;
  • error - manage errors;
  • exceptions - custom exception handling;
  • validators - custom validations;
  • model - entities;
  • request - body request model/entities;
  • service - business logic;
  • util - utility classes;

Resources

  • resources/ - contains all the static resources, templates and property files.
  • resources/static - contains static resources.
  • resources/static/api.yaml - contains Open API Specification.
  • resources/application.properties - contains application-wide properties. Spring reads the properties defined in this file to configure your application. You can define server’s default port, server’s context path, database URLs etc, in this file.
  • resources/log4j.properties - contains contains the entire runtime configuration used by log4j. This file will contain log4j appenders information, log level information and output file names for file appenders.
  • resources/messages.properties - contains the error messages used in the application.
  • mvnw / mvnw.cmd - This allows you to run the Maven project without having Maven installed and present in the path. Download the correct version of Maven if it can't be found (as far as I know by default in your user home directory). The mvnw file is for Linux (bash) and mvnw.cmd is for the Windows environment.
  • pom.xml - contains all the project dependencies

Deploy

  • Build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui.war
  • Restart Tomcat Server
  • URL to access: <protocol>://<host>:<port>/openapi2soapui/api-openapi-to-soapui/v1/soap-ui-projects

Documentation

mvn javadoc:javadoc

💛 Sponsors

cloudappi

About

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification) Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI applic…

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

🛠️ OpenAPI2SoapUI ReleaseSwaggerJavaLicense: LGPL v3

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification)

Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI application.

This repository is intended for :octocat:community use, it can be modified and adapted without commercial use. If you need a version, support or help for your enterprise or project, please contact us 📧 devrel@apiaddicts.org

TwitterDiscordLinkedInFacebookYouTube

🙌 Join the OpenAPI2SoapUI Adopters list

📢 If OpenAPI2SoapUI is part of your organization's toolkit, we kindly encourage you to include your company's name in our Adopters list. 🙏 This not only significantly boosts the project's visibility and reputation but also represents a small yet impactful way to give back to the project.

OrganizationDescription of Use / Referenc
CloudAppiApification and generation of microservices
RSIGeneration of microservices

👩🏽‍💻 Contribute to ApiAddicts

We're an inclusive and open community, welcoming you to join our effort to enhance ApiAddicts, and we're excited to prioritize tasks based on community input, inviting you to review and collaborate through our GitHub issue tracker.

Feel free to drop by and greet us on our GitHub discussion or Discord chat. You can also show your support by giving us some GitHub stars ⭐️, or by following us on Twitter, LinkedIn, and subscribing to our YouTube channel! 🚀

"Buy Me A Coffee"

⚙️ Functionalities

Here you can check the definition of the API Swagger to SoapUI

  • Base64 Decoding of Open API Specification Content
  • Parse Open API Specification Content into swagger-core representation as Java POJO
  • Create SoapUI Project
    • Add OAuth 2.0 Profiles to SoapUI Project
    • Add new REST Service to SoapUI Project
      • Add Endpoints to REST Service
      • Set basePath to REST Service
      • Add Resources (Paths) to REST Service
        • Add Methods (Verbs / Operations) to each Resource
          • Set REST Request to each Method
            • Set Credentials (OAuth 2.0 Profile)
            • Set Parameters examples to REST Request
            • Set Request Body example to REST Request
            • Set Custom Headers to REST Request
    • Add new TestSuites to SoapUI Project for each Method
      • Add TestCases to TestSuite
        • Add Execution Test Step (REST Request)

Nomenclature used:

  • SoapUI Project: {apiName}_{apiVersion}
  • REST Service: {apiName}
  • Resource: {path}
  • Method: {httpMethodInUppercase}
  • Request: {defaultRequestName}
  • Test Suite: {path}_{apiName}_{apiVersion}-{httpMethodInUppercase}-Suite (run type SEQUENTIAL, abortOnError false)
  • Test Case: {httpMethodInUppercase}_Case{CaseDescription}
  • Test Step: Execution_{httpMethodInUppercase}_TestStep

The variables are obtained from:

  • apiName: property apiName of request body
  • apiVersion: version defined in the 'info' section of the OpenAPI Spec
  • path: each path defined in the OpenAPI Spec
  • httpMethodInUppercase: each HTTP methods of paths defined in OpenAPI Spec

Technology stack

Overview

TechnologyDescription
Core FrameworkSpring Boot 3

Server - Backend

TechnologyDescription
JDK 21Java Development Kit
Spring Boot 3Framework to ease the bootstrapping and development of new Spring Applications
Maven 3Dependency Management
Tomcat 10.1+Server deploy WAR (Jakarta EE / Servlet 6)

Libraries and Plugins

TechnologyDescription
LombokNever write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
Hibernate ValidatorExpress validation rules in a standardized way using annotation-based constraints and benefit from transparent integration with a wide variety of frameworks.
Springdoc OpenAPI UIOpenAPI 3 Library for spring boot projects. Is based on swagger-ui, to display the OpenAPI description.
SoapUI core moduleSoapUI is the world's leading Functional Testing tool for SOAP and REST testing.
Swagger ParserParses OpenAPI definitions in JSON or YAML format into swagger-core representation as Java POJO, returning any validation warnings/errors.

📑 Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

External dependencies

The project use "SoapUI Core Module" dependency, which is not maven dependency, so you must have internet access to download the dependency from the external repository, below is the repository configuration inside the pom.xml file.

 ...
<repositories>
<repository>
<id>SmartBearPluginRepository</id>
<url>https://rapi.tools.ops.smartbear.io/nexus/content/groups/public/</url> </repository>
</repositories>
...

Running the application with IDE

There are several ways to run a Spring Boot application on your local machine. One way is to execute the main method in the Openapi2SoapUIApplication class from your IDE.

Example (Eclipse and its offshoots) :

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open IDE
    • File -> Import -> Existing Maven Project -> Navigate to the folder project
    • Select the project
  • Choose the Spring Boot Application file (search for @SpringBootApplication)
  • Right Click on the file and Run as Java Application
  • URL to access: http://localhost:8080/api-openapi-to-soapui/v1/soap-ui-projects

Running the application locally with Maven

Alternatively you can use the Spring Boot Maven plugin like so:

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the server type
$ mvn spring-boot:run

Running the application in Docker

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the docker container type
$ mvn clean package -Pjar
$ docker-compose up -d

Running the application deploying WAR on Tomcat

The code can also be built into a war and then deployed on a Tomcat server.

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui-<version>.war

Files and Directories Structure

The project directory has a particular directory structure. A representative project is shown below:

Project Structure

.
├── src
│ └── main
│ └── java
│ ├── org.apiaddicts.apitools.openapi2soapui
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.config
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.constants
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.controller
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.error
│ ├── org.apiaddicts.apitools.openapi2soapui.error.exceptions
│ ├── org.apiaddicts.apitools.openapi2soapui.error.validators
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.model
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.request
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.service
│ │
│ └── org.apiaddicts.apitools.openapi2soapui.util
├── src
│ └── main
│ └── resources
│ ├── static
│ │ └── api.yaml
│ │ │ ├── application.properties
│ ├── log4j.properties
│ └── messages.properties
├── JRE System Library
├── Maven Dependencies
├── src
├── target
│ └──openapi2soapui-1.0.2
├── .gitlab-ci.yaml
├── lombok.config
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md

Packages

  • config - app configurations;
  • constants - app contants;
  • controller - listen to the client;
  • error - manage errors;
  • exceptions - custom exception handling;
  • validators - custom validations;
  • model - entities;
  • request - body request model/entities;
  • service - business logic;
  • util - utility classes;

Resources

  • resources/ - contains all the static resources, templates and property files.
  • resources/static - contains static resources.
  • resources/static/api.yaml - contains Open API Specification.
  • resources/application.properties - contains application-wide properties. Spring reads the properties defined in this file to configure your application. You can define server’s default port, server’s context path, database URLs etc, in this file.
  • resources/log4j.properties - contains contains the entire runtime configuration used by log4j. This file will contain log4j appenders information, log level information and output file names for file appenders.
  • resources/messages.properties - contains the error messages used in the application.
  • mvnw / mvnw.cmd - This allows you to run the Maven project without having Maven installed and present in the path. Download the correct version of Maven if it can't be found (as far as I know by default in your user home directory). The mvnw file is for Linux (bash) and mvnw.cmd is for the Windows environment.
  • pom.xml - contains all the project dependencies

Deploy

  • Build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui.war
  • Restart Tomcat Server
  • URL to access: <protocol>://<host>:<port>/openapi2soapui/api-openapi-to-soapui/v1/soap-ui-projects

Documentation

mvn javadoc:javadoc

💛 Sponsors

cloudappi

About

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification) Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI applic…

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

🛠️ OpenAPI2SoapUI ReleaseSwaggerJavaLicense: LGPL v3

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification)

Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI application.

This repository is intended for :octocat:community use, it can be modified and adapted without commercial use. If you need a version, support or help for your enterprise or project, please contact us 📧 devrel@apiaddicts.org

TwitterDiscordLinkedInFacebookYouTube

🙌 Join the OpenAPI2SoapUI Adopters list

📢 If OpenAPI2SoapUI is part of your organization's toolkit, we kindly encourage you to include your company's name in our Adopters list. 🙏 This not only significantly boosts the project's visibility and reputation but also represents a small yet impactful way to give back to the project.

OrganizationDescription of Use / Referenc
CloudAppiApification and generation of microservices
RSIGeneration of microservices

👩🏽‍💻 Contribute to ApiAddicts

We're an inclusive and open community, welcoming you to join our effort to enhance ApiAddicts, and we're excited to prioritize tasks based on community input, inviting you to review and collaborate through our GitHub issue tracker.

Feel free to drop by and greet us on our GitHub discussion or Discord chat. You can also show your support by giving us some GitHub stars ⭐️, or by following us on Twitter, LinkedIn, and subscribing to our YouTube channel! 🚀

"Buy Me A Coffee"

⚙️ Functionalities

Here you can check the definition of the API Swagger to SoapUI

  • Base64 Decoding of Open API Specification Content
  • Parse Open API Specification Content into swagger-core representation as Java POJO
  • Create SoapUI Project
    • Add OAuth 2.0 Profiles to SoapUI Project
    • Add new REST Service to SoapUI Project
      • Add Endpoints to REST Service
      • Set basePath to REST Service
      • Add Resources (Paths) to REST Service
        • Add Methods (Verbs / Operations) to each Resource
          • Set REST Request to each Method
            • Set Credentials (OAuth 2.0 Profile)
            • Set Parameters examples to REST Request
            • Set Request Body example to REST Request
            • Set Custom Headers to REST Request
    • Add new TestSuites to SoapUI Project for each Method
      • Add TestCases to TestSuite
        • Add Execution Test Step (REST Request)

Nomenclature used:

  • SoapUI Project: {apiName}_{apiVersion}
  • REST Service: {apiName}
  • Resource: {path}
  • Method: {httpMethodInUppercase}
  • Request: {defaultRequestName}
  • Test Suite: {path}_{apiName}_{apiVersion}-{httpMethodInUppercase}-Suite (run type SEQUENTIAL, abortOnError false)
  • Test Case: {httpMethodInUppercase}_Case{CaseDescription}
  • Test Step: Execution_{httpMethodInUppercase}_TestStep

The variables are obtained from:

  • apiName: property apiName of request body
  • apiVersion: version defined in the 'info' section of the OpenAPI Spec
  • path: each path defined in the OpenAPI Spec
  • httpMethodInUppercase: each HTTP methods of paths defined in OpenAPI Spec

Technology stack

Overview

TechnologyDescription
Core FrameworkSpring Boot 3

Server - Backend

TechnologyDescription
JDK 21Java Development Kit
Spring Boot 3Framework to ease the bootstrapping and development of new Spring Applications
Maven 3Dependency Management
Tomcat 10.1+Server deploy WAR (Jakarta EE / Servlet 6)

Libraries and Plugins

TechnologyDescription
LombokNever write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
Hibernate ValidatorExpress validation rules in a standardized way using annotation-based constraints and benefit from transparent integration with a wide variety of frameworks.
Springdoc OpenAPI UIOpenAPI 3 Library for spring boot projects. Is based on swagger-ui, to display the OpenAPI description.
SoapUI core moduleSoapUI is the world's leading Functional Testing tool for SOAP and REST testing.
Swagger ParserParses OpenAPI definitions in JSON or YAML format into swagger-core representation as Java POJO, returning any validation warnings/errors.

📑 Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

External dependencies

The project use "SoapUI Core Module" dependency, which is not maven dependency, so you must have internet access to download the dependency from the external repository, below is the repository configuration inside the pom.xml file.

 ...
<repositories>
<repository>
<id>SmartBearPluginRepository</id>
<url>https://rapi.tools.ops.smartbear.io/nexus/content/groups/public/</url> </repository>
</repositories>
...

Running the application with IDE

There are several ways to run a Spring Boot application on your local machine. One way is to execute the main method in the Openapi2SoapUIApplication class from your IDE.

Example (Eclipse and its offshoots) :

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open IDE
    • File -> Import -> Existing Maven Project -> Navigate to the folder project
    • Select the project
  • Choose the Spring Boot Application file (search for @SpringBootApplication)
  • Right Click on the file and Run as Java Application
  • URL to access: http://localhost:8080/api-openapi-to-soapui/v1/soap-ui-projects

Running the application locally with Maven

Alternatively you can use the Spring Boot Maven plugin like so:

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the server type
$ mvn spring-boot:run

Running the application in Docker

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the docker container type
$ mvn clean package -Pjar
$ docker-compose up -d

Running the application deploying WAR on Tomcat

The code can also be built into a war and then deployed on a Tomcat server.

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui-<version>.war

Files and Directories Structure

The project directory has a particular directory structure. A representative project is shown below:

Project Structure

.
├── src
│ └── main
│ └── java
│ ├── org.apiaddicts.apitools.openapi2soapui
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.config
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.constants
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.controller
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.error
│ ├── org.apiaddicts.apitools.openapi2soapui.error.exceptions
│ ├── org.apiaddicts.apitools.openapi2soapui.error.validators
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.model
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.request
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.service
│ │
│ └── org.apiaddicts.apitools.openapi2soapui.util
├── src
│ └── main
│ └── resources
│ ├── static
│ │ └── api.yaml
│ │ │ ├── application.properties
│ ├── log4j.properties
│ └── messages.properties
├── JRE System Library
├── Maven Dependencies
├── src
├── target
│ └──openapi2soapui-1.0.2
├── .gitlab-ci.yaml
├── lombok.config
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md

Packages

  • config - app configurations;
  • constants - app contants;
  • controller - listen to the client;
  • error - manage errors;
  • exceptions - custom exception handling;
  • validators - custom validations;
  • model - entities;
  • request - body request model/entities;
  • service - business logic;
  • util - utility classes;

Resources

  • resources/ - contains all the static resources, templates and property files.
  • resources/static - contains static resources.
  • resources/static/api.yaml - contains Open API Specification.
  • resources/application.properties - contains application-wide properties. Spring reads the properties defined in this file to configure your application. You can define server’s default port, server’s context path, database URLs etc, in this file.
  • resources/log4j.properties - contains contains the entire runtime configuration used by log4j. This file will contain log4j appenders information, log level information and output file names for file appenders.
  • resources/messages.properties - contains the error messages used in the application.
  • mvnw / mvnw.cmd - This allows you to run the Maven project without having Maven installed and present in the path. Download the correct version of Maven if it can't be found (as far as I know by default in your user home directory). The mvnw file is for Linux (bash) and mvnw.cmd is for the Windows environment.
  • pom.xml - contains all the project dependencies

Deploy

  • Build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui.war
  • Restart Tomcat Server
  • URL to access: <protocol>://<host>:<port>/openapi2soapui/api-openapi-to-soapui/v1/soap-ui-projects

Documentation

mvn javadoc:javadoc

💛 Sponsors

cloudappi

About

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification) Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI applic…

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

🛠️ OpenAPI2SoapUI ReleaseSwaggerJavaLicense: LGPL v3

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification)

Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI application.

This repository is intended for :octocat:community use, it can be modified and adapted without commercial use. If you need a version, support or help for your enterprise or project, please contact us 📧 devrel@apiaddicts.org

TwitterDiscordLinkedInFacebookYouTube

🙌 Join the OpenAPI2SoapUI Adopters list

📢 If OpenAPI2SoapUI is part of your organization's toolkit, we kindly encourage you to include your company's name in our Adopters list. 🙏 This not only significantly boosts the project's visibility and reputation but also represents a small yet impactful way to give back to the project.

OrganizationDescription of Use / Referenc
CloudAppiApification and generation of microservices
RSIGeneration of microservices

👩🏽‍💻 Contribute to ApiAddicts

We're an inclusive and open community, welcoming you to join our effort to enhance ApiAddicts, and we're excited to prioritize tasks based on community input, inviting you to review and collaborate through our GitHub issue tracker.

Feel free to drop by and greet us on our GitHub discussion or Discord chat. You can also show your support by giving us some GitHub stars ⭐️, or by following us on Twitter, LinkedIn, and subscribing to our YouTube channel! 🚀

"Buy Me A Coffee"

⚙️ Functionalities

Here you can check the definition of the API Swagger to SoapUI

  • Base64 Decoding of Open API Specification Content
  • Parse Open API Specification Content into swagger-core representation as Java POJO
  • Create SoapUI Project
    • Add OAuth 2.0 Profiles to SoapUI Project
    • Add new REST Service to SoapUI Project
      • Add Endpoints to REST Service
      • Set basePath to REST Service
      • Add Resources (Paths) to REST Service
        • Add Methods (Verbs / Operations) to each Resource
          • Set REST Request to each Method
            • Set Credentials (OAuth 2.0 Profile)
            • Set Parameters examples to REST Request
            • Set Request Body example to REST Request
            • Set Custom Headers to REST Request
    • Add new TestSuites to SoapUI Project for each Method
      • Add TestCases to TestSuite
        • Add Execution Test Step (REST Request)

Nomenclature used:

  • SoapUI Project: {apiName}_{apiVersion}
  • REST Service: {apiName}
  • Resource: {path}
  • Method: {httpMethodInUppercase}
  • Request: {defaultRequestName}
  • Test Suite: {path}_{apiName}_{apiVersion}-{httpMethodInUppercase}-Suite (run type SEQUENTIAL, abortOnError false)
  • Test Case: {httpMethodInUppercase}_Case{CaseDescription}
  • Test Step: Execution_{httpMethodInUppercase}_TestStep

The variables are obtained from:

  • apiName: property apiName of request body
  • apiVersion: version defined in the 'info' section of the OpenAPI Spec
  • path: each path defined in the OpenAPI Spec
  • httpMethodInUppercase: each HTTP methods of paths defined in OpenAPI Spec

Technology stack

Overview

TechnologyDescription
Core FrameworkSpring Boot 3

Server - Backend

TechnologyDescription
JDK 21Java Development Kit
Spring Boot 3Framework to ease the bootstrapping and development of new Spring Applications
Maven 3Dependency Management
Tomcat 10.1+Server deploy WAR (Jakarta EE / Servlet 6)

Libraries and Plugins

TechnologyDescription
LombokNever write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
Hibernate ValidatorExpress validation rules in a standardized way using annotation-based constraints and benefit from transparent integration with a wide variety of frameworks.
Springdoc OpenAPI UIOpenAPI 3 Library for spring boot projects. Is based on swagger-ui, to display the OpenAPI description.
SoapUI core moduleSoapUI is the world's leading Functional Testing tool for SOAP and REST testing.
Swagger ParserParses OpenAPI definitions in JSON or YAML format into swagger-core representation as Java POJO, returning any validation warnings/errors.

📑 Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

External dependencies

The project use "SoapUI Core Module" dependency, which is not maven dependency, so you must have internet access to download the dependency from the external repository, below is the repository configuration inside the pom.xml file.

 ...
<repositories>
<repository>
<id>SmartBearPluginRepository</id>
<url>https://rapi.tools.ops.smartbear.io/nexus/content/groups/public/</url> </repository>
</repositories>
...

Running the application with IDE

There are several ways to run a Spring Boot application on your local machine. One way is to execute the main method in the Openapi2SoapUIApplication class from your IDE.

Example (Eclipse and its offshoots) :

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open IDE
    • File -> Import -> Existing Maven Project -> Navigate to the folder project
    • Select the project
  • Choose the Spring Boot Application file (search for @SpringBootApplication)
  • Right Click on the file and Run as Java Application
  • URL to access: http://localhost:8080/api-openapi-to-soapui/v1/soap-ui-projects

Running the application locally with Maven

Alternatively you can use the Spring Boot Maven plugin like so:

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the server type
$ mvn spring-boot:run

Running the application in Docker

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the docker container type
$ mvn clean package -Pjar
$ docker-compose up -d

Running the application deploying WAR on Tomcat

The code can also be built into a war and then deployed on a Tomcat server.

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui-<version>.war

Files and Directories Structure

The project directory has a particular directory structure. A representative project is shown below:

Project Structure

.
├── src
│ └── main
│ └── java
│ ├── org.apiaddicts.apitools.openapi2soapui
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.config
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.constants
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.controller
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.error
│ ├── org.apiaddicts.apitools.openapi2soapui.error.exceptions
│ ├── org.apiaddicts.apitools.openapi2soapui.error.validators
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.model
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.request
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.service
│ │
│ └── org.apiaddicts.apitools.openapi2soapui.util
├── src
│ └── main
│ └── resources
│ ├── static
│ │ └── api.yaml
│ │ │ ├── application.properties
│ ├── log4j.properties
│ └── messages.properties
├── JRE System Library
├── Maven Dependencies
├── src
├── target
│ └──openapi2soapui-1.0.2
├── .gitlab-ci.yaml
├── lombok.config
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md

Packages

  • config - app configurations;
  • constants - app contants;
  • controller - listen to the client;
  • error - manage errors;
  • exceptions - custom exception handling;
  • validators - custom validations;
  • model - entities;
  • request - body request model/entities;
  • service - business logic;
  • util - utility classes;

Resources

  • resources/ - contains all the static resources, templates and property files.
  • resources/static - contains static resources.
  • resources/static/api.yaml - contains Open API Specification.
  • resources/application.properties - contains application-wide properties. Spring reads the properties defined in this file to configure your application. You can define server’s default port, server’s context path, database URLs etc, in this file.
  • resources/log4j.properties - contains contains the entire runtime configuration used by log4j. This file will contain log4j appenders information, log level information and output file names for file appenders.
  • resources/messages.properties - contains the error messages used in the application.
  • mvnw / mvnw.cmd - This allows you to run the Maven project without having Maven installed and present in the path. Download the correct version of Maven if it can't be found (as far as I know by default in your user home directory). The mvnw file is for Linux (bash) and mvnw.cmd is for the Windows environment.
  • pom.xml - contains all the project dependencies

Deploy

  • Build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui.war
  • Restart Tomcat Server
  • URL to access: <protocol>://<host>:<port>/openapi2soapui/api-openapi-to-soapui/v1/soap-ui-projects

Documentation

mvn javadoc:javadoc

💛 Sponsors

cloudappi

About

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification) Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI applic…

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

🛠️ OpenAPI2SoapUI ReleaseSwaggerJavaLicense: LGPL v3

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification)

Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI application.

This repository is intended for :octocat:community use, it can be modified and adapted without commercial use. If you need a version, support or help for your enterprise or project, please contact us 📧 devrel@apiaddicts.org

TwitterDiscordLinkedInFacebookYouTube

🙌 Join the OpenAPI2SoapUI Adopters list

📢 If OpenAPI2SoapUI is part of your organization's toolkit, we kindly encourage you to include your company's name in our Adopters list. 🙏 This not only significantly boosts the project's visibility and reputation but also represents a small yet impactful way to give back to the project.

OrganizationDescription of Use / Referenc
CloudAppiApification and generation of microservices
RSIGeneration of microservices

👩🏽‍💻 Contribute to ApiAddicts

We're an inclusive and open community, welcoming you to join our effort to enhance ApiAddicts, and we're excited to prioritize tasks based on community input, inviting you to review and collaborate through our GitHub issue tracker.

Feel free to drop by and greet us on our GitHub discussion or Discord chat. You can also show your support by giving us some GitHub stars ⭐️, or by following us on Twitter, LinkedIn, and subscribing to our YouTube channel! 🚀

"Buy Me A Coffee"

⚙️ Functionalities

Here you can check the definition of the API Swagger to SoapUI

  • Base64 Decoding of Open API Specification Content
  • Parse Open API Specification Content into swagger-core representation as Java POJO
  • Create SoapUI Project
    • Add OAuth 2.0 Profiles to SoapUI Project
    • Add new REST Service to SoapUI Project
      • Add Endpoints to REST Service
      • Set basePath to REST Service
      • Add Resources (Paths) to REST Service
        • Add Methods (Verbs / Operations) to each Resource
          • Set REST Request to each Method
            • Set Credentials (OAuth 2.0 Profile)
            • Set Parameters examples to REST Request
            • Set Request Body example to REST Request
            • Set Custom Headers to REST Request
    • Add new TestSuites to SoapUI Project for each Method
      • Add TestCases to TestSuite
        • Add Execution Test Step (REST Request)

Nomenclature used:

  • SoapUI Project: {apiName}_{apiVersion}
  • REST Service: {apiName}
  • Resource: {path}
  • Method: {httpMethodInUppercase}
  • Request: {defaultRequestName}
  • Test Suite: {path}_{apiName}_{apiVersion}-{httpMethodInUppercase}-Suite (run type SEQUENTIAL, abortOnError false)
  • Test Case: {httpMethodInUppercase}_Case{CaseDescription}
  • Test Step: Execution_{httpMethodInUppercase}_TestStep

The variables are obtained from:

  • apiName: property apiName of request body
  • apiVersion: version defined in the 'info' section of the OpenAPI Spec
  • path: each path defined in the OpenAPI Spec
  • httpMethodInUppercase: each HTTP methods of paths defined in OpenAPI Spec

Technology stack

Overview

TechnologyDescription
Core FrameworkSpring Boot 3

Server - Backend

TechnologyDescription
JDK 21Java Development Kit
Spring Boot 3Framework to ease the bootstrapping and development of new Spring Applications
Maven 3Dependency Management
Tomcat 10.1+Server deploy WAR (Jakarta EE / Servlet 6)

Libraries and Plugins

TechnologyDescription
LombokNever write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
Hibernate ValidatorExpress validation rules in a standardized way using annotation-based constraints and benefit from transparent integration with a wide variety of frameworks.
Springdoc OpenAPI UIOpenAPI 3 Library for spring boot projects. Is based on swagger-ui, to display the OpenAPI description.
SoapUI core moduleSoapUI is the world's leading Functional Testing tool for SOAP and REST testing.
Swagger ParserParses OpenAPI definitions in JSON or YAML format into swagger-core representation as Java POJO, returning any validation warnings/errors.

📑 Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

External dependencies

The project use "SoapUI Core Module" dependency, which is not maven dependency, so you must have internet access to download the dependency from the external repository, below is the repository configuration inside the pom.xml file.

 ...
<repositories>
<repository>
<id>SmartBearPluginRepository</id>
<url>https://rapi.tools.ops.smartbear.io/nexus/content/groups/public/</url> </repository>
</repositories>
...

Running the application with IDE

There are several ways to run a Spring Boot application on your local machine. One way is to execute the main method in the Openapi2SoapUIApplication class from your IDE.

Example (Eclipse and its offshoots) :

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open IDE
    • File -> Import -> Existing Maven Project -> Navigate to the folder project
    • Select the project
  • Choose the Spring Boot Application file (search for @SpringBootApplication)
  • Right Click on the file and Run as Java Application
  • URL to access: http://localhost:8080/api-openapi-to-soapui/v1/soap-ui-projects

Running the application locally with Maven

Alternatively you can use the Spring Boot Maven plugin like so:

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the server type
$ mvn spring-boot:run

Running the application in Docker

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the docker container type
$ mvn clean package -Pjar
$ docker-compose up -d

Running the application deploying WAR on Tomcat

The code can also be built into a war and then deployed on a Tomcat server.

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui-<version>.war

Files and Directories Structure

The project directory has a particular directory structure. A representative project is shown below:

Project Structure

.
├── src
│ └── main
│ └── java
│ ├── org.apiaddicts.apitools.openapi2soapui
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.config
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.constants
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.controller
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.error
│ ├── org.apiaddicts.apitools.openapi2soapui.error.exceptions
│ ├── org.apiaddicts.apitools.openapi2soapui.error.validators
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.model
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.request
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.service
│ │
│ └── org.apiaddicts.apitools.openapi2soapui.util
├── src
│ └── main
│ └── resources
│ ├── static
│ │ └── api.yaml
│ │ │ ├── application.properties
│ ├── log4j.properties
│ └── messages.properties
├── JRE System Library
├── Maven Dependencies
├── src
├── target
│ └──openapi2soapui-1.0.2
├── .gitlab-ci.yaml
├── lombok.config
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md

Packages

  • config - app configurations;
  • constants - app contants;
  • controller - listen to the client;
  • error - manage errors;
  • exceptions - custom exception handling;
  • validators - custom validations;
  • model - entities;
  • request - body request model/entities;
  • service - business logic;
  • util - utility classes;

Resources

  • resources/ - contains all the static resources, templates and property files.
  • resources/static - contains static resources.
  • resources/static/api.yaml - contains Open API Specification.
  • resources/application.properties - contains application-wide properties. Spring reads the properties defined in this file to configure your application. You can define server’s default port, server’s context path, database URLs etc, in this file.
  • resources/log4j.properties - contains contains the entire runtime configuration used by log4j. This file will contain log4j appenders information, log level information and output file names for file appenders.
  • resources/messages.properties - contains the error messages used in the application.
  • mvnw / mvnw.cmd - This allows you to run the Maven project without having Maven installed and present in the path. Download the correct version of Maven if it can't be found (as far as I know by default in your user home directory). The mvnw file is for Linux (bash) and mvnw.cmd is for the Windows environment.
  • pom.xml - contains all the project dependencies

Deploy

  • Build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui.war
  • Restart Tomcat Server
  • URL to access: <protocol>://<host>:<port>/openapi2soapui/api-openapi-to-soapui/v1/soap-ui-projects

Documentation

mvn javadoc:javadoc

💛 Sponsors

cloudappi

About

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification) Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI applic…

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

🛠️ OpenAPI2SoapUI ReleaseSwaggerJavaLicense: LGPL v3

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification)

Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI application.

This repository is intended for :octocat:community use, it can be modified and adapted without commercial use. If you need a version, support or help for your enterprise or project, please contact us 📧 devrel@apiaddicts.org

TwitterDiscordLinkedInFacebookYouTube

🙌 Join the OpenAPI2SoapUI Adopters list

📢 If OpenAPI2SoapUI is part of your organization's toolkit, we kindly encourage you to include your company's name in our Adopters list. 🙏 This not only significantly boosts the project's visibility and reputation but also represents a small yet impactful way to give back to the project.

OrganizationDescription of Use / Referenc
CloudAppiApification and generation of microservices
RSIGeneration of microservices

👩🏽‍💻 Contribute to ApiAddicts

We're an inclusive and open community, welcoming you to join our effort to enhance ApiAddicts, and we're excited to prioritize tasks based on community input, inviting you to review and collaborate through our GitHub issue tracker.

Feel free to drop by and greet us on our GitHub discussion or Discord chat. You can also show your support by giving us some GitHub stars ⭐️, or by following us on Twitter, LinkedIn, and subscribing to our YouTube channel! 🚀

"Buy Me A Coffee"

⚙️ Functionalities

Here you can check the definition of the API Swagger to SoapUI

  • Base64 Decoding of Open API Specification Content
  • Parse Open API Specification Content into swagger-core representation as Java POJO
  • Create SoapUI Project
    • Add OAuth 2.0 Profiles to SoapUI Project
    • Add new REST Service to SoapUI Project
      • Add Endpoints to REST Service
      • Set basePath to REST Service
      • Add Resources (Paths) to REST Service
        • Add Methods (Verbs / Operations) to each Resource
          • Set REST Request to each Method
            • Set Credentials (OAuth 2.0 Profile)
            • Set Parameters examples to REST Request
            • Set Request Body example to REST Request
            • Set Custom Headers to REST Request
    • Add new TestSuites to SoapUI Project for each Method
      • Add TestCases to TestSuite
        • Add Execution Test Step (REST Request)

Nomenclature used:

  • SoapUI Project: {apiName}_{apiVersion}
  • REST Service: {apiName}
  • Resource: {path}
  • Method: {httpMethodInUppercase}
  • Request: {defaultRequestName}
  • Test Suite: {path}_{apiName}_{apiVersion}-{httpMethodInUppercase}-Suite (run type SEQUENTIAL, abortOnError false)
  • Test Case: {httpMethodInUppercase}_Case{CaseDescription}
  • Test Step: Execution_{httpMethodInUppercase}_TestStep

The variables are obtained from:

  • apiName: property apiName of request body
  • apiVersion: version defined in the 'info' section of the OpenAPI Spec
  • path: each path defined in the OpenAPI Spec
  • httpMethodInUppercase: each HTTP methods of paths defined in OpenAPI Spec

Technology stack

Overview

TechnologyDescription
Core FrameworkSpring Boot 3

Server - Backend

TechnologyDescription
JDK 21Java Development Kit
Spring Boot 3Framework to ease the bootstrapping and development of new Spring Applications
Maven 3Dependency Management
Tomcat 10.1+Server deploy WAR (Jakarta EE / Servlet 6)

Libraries and Plugins

TechnologyDescription
LombokNever write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
Hibernate ValidatorExpress validation rules in a standardized way using annotation-based constraints and benefit from transparent integration with a wide variety of frameworks.
Springdoc OpenAPI UIOpenAPI 3 Library for spring boot projects. Is based on swagger-ui, to display the OpenAPI description.
SoapUI core moduleSoapUI is the world's leading Functional Testing tool for SOAP and REST testing.
Swagger ParserParses OpenAPI definitions in JSON or YAML format into swagger-core representation as Java POJO, returning any validation warnings/errors.

📑 Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

External dependencies

The project use "SoapUI Core Module" dependency, which is not maven dependency, so you must have internet access to download the dependency from the external repository, below is the repository configuration inside the pom.xml file.

 ...
<repositories>
<repository>
<id>SmartBearPluginRepository</id>
<url>https://rapi.tools.ops.smartbear.io/nexus/content/groups/public/</url> </repository>
</repositories>
...

Running the application with IDE

There are several ways to run a Spring Boot application on your local machine. One way is to execute the main method in the Openapi2SoapUIApplication class from your IDE.

Example (Eclipse and its offshoots) :

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open IDE
    • File -> Import -> Existing Maven Project -> Navigate to the folder project
    • Select the project
  • Choose the Spring Boot Application file (search for @SpringBootApplication)
  • Right Click on the file and Run as Java Application
  • URL to access: http://localhost:8080/api-openapi-to-soapui/v1/soap-ui-projects

Running the application locally with Maven

Alternatively you can use the Spring Boot Maven plugin like so:

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the server type
$ mvn spring-boot:run

Running the application in Docker

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the docker container type
$ mvn clean package -Pjar
$ docker-compose up -d

Running the application deploying WAR on Tomcat

The code can also be built into a war and then deployed on a Tomcat server.

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui-<version>.war

Files and Directories Structure

The project directory has a particular directory structure. A representative project is shown below:

Project Structure

.
├── src
│ └── main
│ └── java
│ ├── org.apiaddicts.apitools.openapi2soapui
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.config
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.constants
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.controller
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.error
│ ├── org.apiaddicts.apitools.openapi2soapui.error.exceptions
│ ├── org.apiaddicts.apitools.openapi2soapui.error.validators
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.model
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.request
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.service
│ │
│ └── org.apiaddicts.apitools.openapi2soapui.util
├── src
│ └── main
│ └── resources
│ ├── static
│ │ └── api.yaml
│ │ │ ├── application.properties
│ ├── log4j.properties
│ └── messages.properties
├── JRE System Library
├── Maven Dependencies
├── src
├── target
│ └──openapi2soapui-1.0.2
├── .gitlab-ci.yaml
├── lombok.config
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md

Packages

  • config - app configurations;
  • constants - app contants;
  • controller - listen to the client;
  • error - manage errors;
  • exceptions - custom exception handling;
  • validators - custom validations;
  • model - entities;
  • request - body request model/entities;
  • service - business logic;
  • util - utility classes;

Resources

  • resources/ - contains all the static resources, templates and property files.
  • resources/static - contains static resources.
  • resources/static/api.yaml - contains Open API Specification.
  • resources/application.properties - contains application-wide properties. Spring reads the properties defined in this file to configure your application. You can define server’s default port, server’s context path, database URLs etc, in this file.
  • resources/log4j.properties - contains contains the entire runtime configuration used by log4j. This file will contain log4j appenders information, log level information and output file names for file appenders.
  • resources/messages.properties - contains the error messages used in the application.
  • mvnw / mvnw.cmd - This allows you to run the Maven project without having Maven installed and present in the path. Download the correct version of Maven if it can't be found (as far as I know by default in your user home directory). The mvnw file is for Linux (bash) and mvnw.cmd is for the Windows environment.
  • pom.xml - contains all the project dependencies

Deploy

  • Build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui.war
  • Restart Tomcat Server
  • URL to access: <protocol>://<host>:<port>/openapi2soapui/api-openapi-to-soapui/v1/soap-ui-projects

Documentation

mvn javadoc:javadoc

💛 Sponsors

cloudappi

About

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification) Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI applic…

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

🛠️ OpenAPI2SoapUI ReleaseSwaggerJavaLicense: LGPL v3

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification)

Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI application.

This repository is intended for :octocat:community use, it can be modified and adapted without commercial use. If you need a version, support or help for your enterprise or project, please contact us 📧 devrel@apiaddicts.org

TwitterDiscordLinkedInFacebookYouTube

🙌 Join the OpenAPI2SoapUI Adopters list

📢 If OpenAPI2SoapUI is part of your organization's toolkit, we kindly encourage you to include your company's name in our Adopters list. 🙏 This not only significantly boosts the project's visibility and reputation but also represents a small yet impactful way to give back to the project.

OrganizationDescription of Use / Referenc
CloudAppiApification and generation of microservices
RSIGeneration of microservices

👩🏽‍💻 Contribute to ApiAddicts

We're an inclusive and open community, welcoming you to join our effort to enhance ApiAddicts, and we're excited to prioritize tasks based on community input, inviting you to review and collaborate through our GitHub issue tracker.

Feel free to drop by and greet us on our GitHub discussion or Discord chat. You can also show your support by giving us some GitHub stars ⭐️, or by following us on Twitter, LinkedIn, and subscribing to our YouTube channel! 🚀

"Buy Me A Coffee"

⚙️ Functionalities

Here you can check the definition of the API Swagger to SoapUI

  • Base64 Decoding of Open API Specification Content
  • Parse Open API Specification Content into swagger-core representation as Java POJO
  • Create SoapUI Project
    • Add OAuth 2.0 Profiles to SoapUI Project
    • Add new REST Service to SoapUI Project
      • Add Endpoints to REST Service
      • Set basePath to REST Service
      • Add Resources (Paths) to REST Service
        • Add Methods (Verbs / Operations) to each Resource
          • Set REST Request to each Method
            • Set Credentials (OAuth 2.0 Profile)
            • Set Parameters examples to REST Request
            • Set Request Body example to REST Request
            • Set Custom Headers to REST Request
    • Add new TestSuites to SoapUI Project for each Method
      • Add TestCases to TestSuite
        • Add Execution Test Step (REST Request)

Nomenclature used:

  • SoapUI Project: {apiName}_{apiVersion}
  • REST Service: {apiName}
  • Resource: {path}
  • Method: {httpMethodInUppercase}
  • Request: {defaultRequestName}
  • Test Suite: {path}_{apiName}_{apiVersion}-{httpMethodInUppercase}-Suite (run type SEQUENTIAL, abortOnError false)
  • Test Case: {httpMethodInUppercase}_Case{CaseDescription}
  • Test Step: Execution_{httpMethodInUppercase}_TestStep

The variables are obtained from:

  • apiName: property apiName of request body
  • apiVersion: version defined in the 'info' section of the OpenAPI Spec
  • path: each path defined in the OpenAPI Spec
  • httpMethodInUppercase: each HTTP methods of paths defined in OpenAPI Spec

Technology stack

Overview

TechnologyDescription
Core FrameworkSpring Boot 3

Server - Backend

TechnologyDescription
JDK 21Java Development Kit
Spring Boot 3Framework to ease the bootstrapping and development of new Spring Applications
Maven 3Dependency Management
Tomcat 10.1+Server deploy WAR (Jakarta EE / Servlet 6)

Libraries and Plugins

TechnologyDescription
LombokNever write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
Hibernate ValidatorExpress validation rules in a standardized way using annotation-based constraints and benefit from transparent integration with a wide variety of frameworks.
Springdoc OpenAPI UIOpenAPI 3 Library for spring boot projects. Is based on swagger-ui, to display the OpenAPI description.
SoapUI core moduleSoapUI is the world's leading Functional Testing tool for SOAP and REST testing.
Swagger ParserParses OpenAPI definitions in JSON or YAML format into swagger-core representation as Java POJO, returning any validation warnings/errors.

📑 Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

External dependencies

The project use "SoapUI Core Module" dependency, which is not maven dependency, so you must have internet access to download the dependency from the external repository, below is the repository configuration inside the pom.xml file.

 ...
<repositories>
<repository>
<id>SmartBearPluginRepository</id>
<url>https://rapi.tools.ops.smartbear.io/nexus/content/groups/public/</url> </repository>
</repositories>
...

Running the application with IDE

There are several ways to run a Spring Boot application on your local machine. One way is to execute the main method in the Openapi2SoapUIApplication class from your IDE.

Example (Eclipse and its offshoots) :

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open IDE
    • File -> Import -> Existing Maven Project -> Navigate to the folder project
    • Select the project
  • Choose the Spring Boot Application file (search for @SpringBootApplication)
  • Right Click on the file and Run as Java Application
  • URL to access: http://localhost:8080/api-openapi-to-soapui/v1/soap-ui-projects

Running the application locally with Maven

Alternatively you can use the Spring Boot Maven plugin like so:

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the server type
$ mvn spring-boot:run

Running the application in Docker

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the docker container type
$ mvn clean package -Pjar
$ docker-compose up -d

Running the application deploying WAR on Tomcat

The code can also be built into a war and then deployed on a Tomcat server.

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui-<version>.war

Files and Directories Structure

The project directory has a particular directory structure. A representative project is shown below:

Project Structure

.
├── src
│ └── main
│ └── java
│ ├── org.apiaddicts.apitools.openapi2soapui
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.config
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.constants
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.controller
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.error
│ ├── org.apiaddicts.apitools.openapi2soapui.error.exceptions
│ ├── org.apiaddicts.apitools.openapi2soapui.error.validators
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.model
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.request
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.service
│ │
│ └── org.apiaddicts.apitools.openapi2soapui.util
├── src
│ └── main
│ └── resources
│ ├── static
│ │ └── api.yaml
│ │ │ ├── application.properties
│ ├── log4j.properties
│ └── messages.properties
├── JRE System Library
├── Maven Dependencies
├── src
├── target
│ └──openapi2soapui-1.0.2
├── .gitlab-ci.yaml
├── lombok.config
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md

Packages

  • config - app configurations;
  • constants - app contants;
  • controller - listen to the client;
  • error - manage errors;
  • exceptions - custom exception handling;
  • validators - custom validations;
  • model - entities;
  • request - body request model/entities;
  • service - business logic;
  • util - utility classes;

Resources

  • resources/ - contains all the static resources, templates and property files.
  • resources/static - contains static resources.
  • resources/static/api.yaml - contains Open API Specification.
  • resources/application.properties - contains application-wide properties. Spring reads the properties defined in this file to configure your application. You can define server’s default port, server’s context path, database URLs etc, in this file.
  • resources/log4j.properties - contains contains the entire runtime configuration used by log4j. This file will contain log4j appenders information, log level information and output file names for file appenders.
  • resources/messages.properties - contains the error messages used in the application.
  • mvnw / mvnw.cmd - This allows you to run the Maven project without having Maven installed and present in the path. Download the correct version of Maven if it can't be found (as far as I know by default in your user home directory). The mvnw file is for Linux (bash) and mvnw.cmd is for the Windows environment.
  • pom.xml - contains all the project dependencies

Deploy

  • Build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui.war
  • Restart Tomcat Server
  • URL to access: <protocol>://<host>:<port>/openapi2soapui/api-openapi-to-soapui/v1/soap-ui-projects

Documentation

mvn javadoc:javadoc

💛 Sponsors

cloudappi

About

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification) Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI applic…

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

🛠️ OpenAPI2SoapUI ReleaseSwaggerJavaLicense: LGPL v3

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification)

Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI application.

This repository is intended for :octocat:community use, it can be modified and adapted without commercial use. If you need a version, support or help for your enterprise or project, please contact us 📧 devrel@apiaddicts.org

TwitterDiscordLinkedInFacebookYouTube

🙌 Join the OpenAPI2SoapUI Adopters list

📢 If OpenAPI2SoapUI is part of your organization's toolkit, we kindly encourage you to include your company's name in our Adopters list. 🙏 This not only significantly boosts the project's visibility and reputation but also represents a small yet impactful way to give back to the project.

OrganizationDescription of Use / Referenc
CloudAppiApification and generation of microservices
RSIGeneration of microservices

👩🏽‍💻 Contribute to ApiAddicts

We're an inclusive and open community, welcoming you to join our effort to enhance ApiAddicts, and we're excited to prioritize tasks based on community input, inviting you to review and collaborate through our GitHub issue tracker.

Feel free to drop by and greet us on our GitHub discussion or Discord chat. You can also show your support by giving us some GitHub stars ⭐️, or by following us on Twitter, LinkedIn, and subscribing to our YouTube channel! 🚀

"Buy Me A Coffee"

⚙️ Functionalities

Here you can check the definition of the API Swagger to SoapUI

  • Base64 Decoding of Open API Specification Content
  • Parse Open API Specification Content into swagger-core representation as Java POJO
  • Create SoapUI Project
    • Add OAuth 2.0 Profiles to SoapUI Project
    • Add new REST Service to SoapUI Project
      • Add Endpoints to REST Service
      • Set basePath to REST Service
      • Add Resources (Paths) to REST Service
        • Add Methods (Verbs / Operations) to each Resource
          • Set REST Request to each Method
            • Set Credentials (OAuth 2.0 Profile)
            • Set Parameters examples to REST Request
            • Set Request Body example to REST Request
            • Set Custom Headers to REST Request
    • Add new TestSuites to SoapUI Project for each Method
      • Add TestCases to TestSuite
        • Add Execution Test Step (REST Request)

Nomenclature used:

  • SoapUI Project: {apiName}_{apiVersion}
  • REST Service: {apiName}
  • Resource: {path}
  • Method: {httpMethodInUppercase}
  • Request: {defaultRequestName}
  • Test Suite: {path}_{apiName}_{apiVersion}-{httpMethodInUppercase}-Suite (run type SEQUENTIAL, abortOnError false)
  • Test Case: {httpMethodInUppercase}_Case{CaseDescription}
  • Test Step: Execution_{httpMethodInUppercase}_TestStep

The variables are obtained from:

  • apiName: property apiName of request body
  • apiVersion: version defined in the 'info' section of the OpenAPI Spec
  • path: each path defined in the OpenAPI Spec
  • httpMethodInUppercase: each HTTP methods of paths defined in OpenAPI Spec

Technology stack

Overview

TechnologyDescription
Core FrameworkSpring Boot 3

Server - Backend

TechnologyDescription
JDK 21Java Development Kit
Spring Boot 3Framework to ease the bootstrapping and development of new Spring Applications
Maven 3Dependency Management
Tomcat 10.1+Server deploy WAR (Jakarta EE / Servlet 6)

Libraries and Plugins

TechnologyDescription
LombokNever write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
Hibernate ValidatorExpress validation rules in a standardized way using annotation-based constraints and benefit from transparent integration with a wide variety of frameworks.
Springdoc OpenAPI UIOpenAPI 3 Library for spring boot projects. Is based on swagger-ui, to display the OpenAPI description.
SoapUI core moduleSoapUI is the world's leading Functional Testing tool for SOAP and REST testing.
Swagger ParserParses OpenAPI definitions in JSON or YAML format into swagger-core representation as Java POJO, returning any validation warnings/errors.

📑 Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

External dependencies

The project use "SoapUI Core Module" dependency, which is not maven dependency, so you must have internet access to download the dependency from the external repository, below is the repository configuration inside the pom.xml file.

 ...
<repositories>
<repository>
<id>SmartBearPluginRepository</id>
<url>https://rapi.tools.ops.smartbear.io/nexus/content/groups/public/</url> </repository>
</repositories>
...

Running the application with IDE

There are several ways to run a Spring Boot application on your local machine. One way is to execute the main method in the Openapi2SoapUIApplication class from your IDE.

Example (Eclipse and its offshoots) :

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open IDE
    • File -> Import -> Existing Maven Project -> Navigate to the folder project
    • Select the project
  • Choose the Spring Boot Application file (search for @SpringBootApplication)
  • Right Click on the file and Run as Java Application
  • URL to access: http://localhost:8080/api-openapi-to-soapui/v1/soap-ui-projects

Running the application locally with Maven

Alternatively you can use the Spring Boot Maven plugin like so:

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the server type
$ mvn spring-boot:run

Running the application in Docker

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build and start the docker container type
$ mvn clean package -Pjar
$ docker-compose up -d

Running the application deploying WAR on Tomcat

The code can also be built into a war and then deployed on a Tomcat server.

  • Download the zip or clone the Git repository.
  • Unzip the zip file (if you downloaded one)
  • Open Command Prompt and Change directory (cd) to folder containing pom.xml
  • To build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui-<version>.war

Files and Directories Structure

The project directory has a particular directory structure. A representative project is shown below:

Project Structure

.
├── src
│ └── main
│ └── java
│ ├── org.apiaddicts.apitools.openapi2soapui
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.config
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.constants
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.controller
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.error
│ ├── org.apiaddicts.apitools.openapi2soapui.error.exceptions
│ ├── org.apiaddicts.apitools.openapi2soapui.error.validators
│ │ │ ├── org.apiaddicts.apitools.openapi2soapui.model
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.request
│ │
│ ├── org.apiaddicts.apitools.openapi2soapui.service
│ │
│ └── org.apiaddicts.apitools.openapi2soapui.util
├── src
│ └── main
│ └── resources
│ ├── static
│ │ └── api.yaml
│ │ │ ├── application.properties
│ ├── log4j.properties
│ └── messages.properties
├── JRE System Library
├── Maven Dependencies
├── src
├── target
│ └──openapi2soapui-1.0.2
├── .gitlab-ci.yaml
├── lombok.config
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md

Packages

  • config - app configurations;
  • constants - app contants;
  • controller - listen to the client;
  • error - manage errors;
  • exceptions - custom exception handling;
  • validators - custom validations;
  • model - entities;
  • request - body request model/entities;
  • service - business logic;
  • util - utility classes;

Resources

  • resources/ - contains all the static resources, templates and property files.
  • resources/static - contains static resources.
  • resources/static/api.yaml - contains Open API Specification.
  • resources/application.properties - contains application-wide properties. Spring reads the properties defined in this file to configure your application. You can define server’s default port, server’s context path, database URLs etc, in this file.
  • resources/log4j.properties - contains contains the entire runtime configuration used by log4j. This file will contain log4j appenders information, log level information and output file names for file appenders.
  • resources/messages.properties - contains the error messages used in the application.
  • mvnw / mvnw.cmd - This allows you to run the Maven project without having Maven installed and present in the path. Download the correct version of Maven if it can't be found (as far as I know by default in your user home directory). The mvnw file is for Linux (bash) and mvnw.cmd is for the Windows environment.
  • pom.xml - contains all the project dependencies

Deploy

  • Build the war type
$ mvn clean package
  • Once the war is built, copy the output WAR to Tomcat's webapps directory.
$CATALINA_HOME/webapps/openapi2soapui.war
  • Restart Tomcat Server
  • URL to access: <protocol>://<host>:<port>/openapi2soapui/api-openapi-to-soapui/v1/soap-ui-projects

Documentation

mvn javadoc:javadoc

💛 Sponsors

cloudappi

About

API to generate a SoapUI project from an OpenAPI Specification (fka Swagger Specification) Given an OpenAPI Specification, either v2 or v3, a SoapUI project is generated with the requests for each resource operation and a test suite. The response is the content of the SoapUI project in XML format to save as file and import into the SoapUI applic…

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages