citrus icon indicating copy to clipboard operation
citrus copied to clipboard

Outdated: Issue/1175/improve open api final 2

Open tschlat opened this issue 1 year ago • 10 comments

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 avatar Oct 05 '24 17:10 tschlat