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 32 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
@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 27 commits October 29, 2024 08:53
Framework was added in favour of OpenApiTestDataGenerator implementation
- 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 435dc94 to e946c4c Compare October 29, 2024 07:56
@bbortt
Copy link
Collaborator

bbortt commented Oct 29, 2024

found the last ci/cd bug. it was actually a case-sensitivity problem, which didn't occur on windows. we should expect to see a green build.

@tschlat
Copy link
Collaborator Author

tschlat commented Oct 30, 2024

@ueberfuhr - as a user of the current OpenAPI feature, i would be interested in your feedback on this new feature. Especially in the context of OAS validation, which might be breaking, once we merge this MR (see MR description for details). I advise to check this class that tests all aspects of the generated API.

org.citrusframework.openapi.generator.GeneratedRestApiIT

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