Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue/1175/improve open api final 2 #1224

Open
wants to merge 41 commits into
base: main
Choose a base branch
from

Conversation

tschlat
Copy link
Collaborator

@tschlat tschlat commented Oct 5, 2024

This is the final PR for the new OpenAPI feature.

I apologize for the large size of this PR. It includes the following major changes:

  1. Updates to the OpenAPI Connector:
  • Improved test coverage.
  • Replaced validation using "Citrus Control Message" with OAS schema validation based on the Atlassian OpenAPI Validator framework. (This is quite a drastical change and I would appreciate Christophs Feedback on this). I am pretty sure that this is breaking, as the OpenAPI Validator might be stricter than the previous implementation.
  • Enhanced random message generation capabilities and test coverage
  1. Revised Implementation of TestAPI Generator:
  • Now uses the Citrus Builder Pattern.
  • Added extensive tests to verify the generated test API against various aspects of OpenAPI.
  • Introduced multipartmessage support.
  • Included support for all different types of parameter serialization.
  • Added an initial implementation of a SOAP Test API generator. While the benefits of this API are somewhat limited, it becomes useful when OpenAPI and SOAP are used together, as both service types can now be handled in a consistent way. Note: the SOAP Test API is in an early stage, with basic functionality and limited testing.
  • org.citrusframework.openapi.generator.GeneratedRestApiIT gives an overview on how to use the generated REST API
  • org.citrusframework.openapi.generator.GeneratedSoapApiIT same for SOAP although only very little, yet
  1. Enhanced Server-Side Header Validation for Parameter Serialization:
  • Improved header validation to support arrays of parameters, particularly focusing on different aspects of array-type parameter serialization.
  • see org.citrusframework.http.message.HttpQueryParamHeaderValidator for details

@tschlat tschlat force-pushed the issue/1175/improve_open_api_final_2 branch 2 times, most recently from 31731e3 to 7b85d6a Compare October 5, 2024 17:58
@tschlat tschlat requested review from bbortt and christophd October 5, 2024 18:07
@bbortt bbortt force-pushed the issue/1175/improve_open_api_final_2 branch 2 times, most recently from af4b223 to 18ae70b Compare October 21, 2024 14:42
bbortt added a commit that referenced this pull request Oct 23, 2024
bbortt added a commit that referenced this pull request Oct 23, 2024
bbortt added a commit that referenced this pull request Oct 23, 2024
bbortt added a commit that referenced this pull request Oct 24, 2024
bbortt added a commit that referenced this pull request Oct 24, 2024
bbortt added a commit that referenced this pull request Oct 24, 2024
bbortt added a commit that referenced this pull request Oct 24, 2024
bbortt added a commit that referenced this pull request Oct 24, 2024
bbortt added a commit that referenced this pull request Oct 24, 2024
bbortt added a commit that referenced this pull request Oct 24, 2024
bbortt added a commit that referenced this pull request Oct 24, 2024
bbortt added a commit that referenced this pull request Oct 26, 2024
bbortt added a commit that referenced this pull request Oct 26, 2024
bbortt added a commit that referenced this pull request Oct 26, 2024
bbortt added a commit that referenced this pull request Oct 26, 2024
@bbortt bbortt added State: To discuss In case there are open questions concerning the issue Type: Feature Prio: High State: Review If pull-request has been opened an is ready/in review labels Oct 28, 2024
bbortt added a commit that referenced this pull request Oct 28, 2024
Thorsten Schlathoelter and others added 22 commits December 9, 2024 14:18
- support java dsl
- streamline implementation with standard citrus builder pattern
- support open api parameter serialization
pr: #1224

`citrus-test-api-generator-core` module.
pr: #1224

`citrus-test-api-generator-maven-plugin` module.
pr: #1224

`citrus-validation` module and sub-modules.
@bbortt bbortt force-pushed the issue/1175/improve_open_api_final_2 branch from d275274 to 6619f23 Compare December 9, 2024 13:37
Copy link
Collaborator

@bbortt bbortt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've rebased this PR onto origin/main.

/lgtm

need to talk to @christophd about merging-strategies.

}

if (!TestUtils.isNetworkReachable()) {
throw new SkipException("Test skipped because network is not reachable. We are probably running behind a proxy and JBang download is not possible.");
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed this duplicate check.

@@ -284,6 +282,26 @@
</configOptions>
</configuration>
</execution>
<!-- <execution>-->
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've removed this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Prio: High State: Review If pull-request has been opened an is ready/in review State: To discuss In case there are open questions concerning the issue Type: Feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants