* Upgrade erlang-server code generation and fix is_authorized crashes
* Introduce structured logging
* Improve general formatting
* Update generated files
* Enable erlang server on CI
* Add echo-server testing to CI
* Require OTP27 explicitly in the generated rebar.config file
* Rework handler and API
With this work, json validation becomes optional, fully implemented in
the `_api` module as it was before, but without being forcibly called by
the `_handler`. It is instead left as optional for the user to take
advantage of the exposed callbacks. Jesse also chooses draft-06 as a
default, but these can be chosen manually by the user too, as long as
jesse implements them.
`_handler` also becomes lighter, it now handles all mime types
transparently by forwarding to a user-given module that must implement
`accept_callback/4` and `provide_callback/4` as described in the
`_logic_handler` callbacks. These will simply be the return values of
cowboy_rest's `content_types_accepted` and `content_types_provided`
respectively, and should simply comply with their defined APIs. They
only get two parameters extending the behaviour, so that the user-given
callback can pattern-match on them: the path prefix of the logic
handler, and the operationID of the call.
* Fix return types for provide_callbacks
* Upgrade jesse to incur no dependencies
The less dependencies the built code requires the better.
* Fix dialyzer errors in the generated code
* Apply stronger dialyzer checks
* fix: typescript-angular -> when model property name is sanitized, use instead original property name within quotes in mustache template
* fix: updated samples
* chore: added comment for hasSanitizedName
* add original tag, add dummy model for test
* update samples
---------
Co-authored-by: Davide Diaconu <davidediak@gmail.com>
* [Rust Server] Add auto-generated CLI tool
* [Rust Server] Test multiple path parameters
* [Rust Server] Test boolean parameters and apostrophes
* [Rust Server] Test operation with two boolean parameters with same first letter
* [Rust Server] Test apostrophes in operation summary
* Update samples
* [Rust Server] Fix build errors with OpenSSL
* Update samples
* Update samples
* [Rust Server] Fix up model generation
- Correctly generate anyOf/oneOf models
- Fix up ToString / FromStr support
- Disable PartialOrd generation for anyOf/oneOf models
- Generate models for inline enums
- Support enums in headers, and vectors of models in headers
* [Rust Server] Add test for anyOf with additional properties
* Update samples
* [Rust Server] Tidy up logging
* [Rust Server] Sort operations so that the ones with fewest params come first
This resolves things correctly per
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#pathsObject
- "When matching URLs, concrete (non-templated) paths would be matched
before their templated counterparts."
* Update samples
* [Rust Server] Fix tabs vs spaces
---------
Co-authored-by: Rob Day <Robert.Day@metaswitch.com>
* [Rust Server] Allow configuration of multipart/form attachment size limit
multipart 0.14+ imposes a 8MB size limit on multipart/form bodies.
This allows that limit to be configured. The default is left as is.
This also improves error messages produced when handling multipart/form bodies.
* Update samples
* Fix server-writing docs for rust-server
Fix broken link in generated README for rust-server.
* Update samples
---------
Co-authored-by: Keith Wansbrough <Keith.Wansbrough@metaswitch.com>
* Suppress Pattern annotation on property of type byte array
Signed-off-by: Tim Quinn <tim.quinn@oracle.com>
* Straggler files from generated samples
* Add new format test to workflows
---------
Signed-off-by: Tim Quinn <tim.quinn@oracle.com>
This allows overriders to have full access to the response object and
more finely control the error handling behavior.
For example, this enables the specification of a proper Content-Type in
case of custom format responses (application/json, ...)
* [Rust Server] Fix code so examples compile
Zero length arrays don't correctly type infer, so if we have no scopes, we need to not create a empty array
We need an authentication middleware - without it the code doesn't compile.
* Update samples
* [Rust Server] Remove trailing whitespace
* Update samples
* [Rust Server] [CI] Build all targets
* [Rust] Fix reqwest test
* Save work-in-progress
* Incoming param handling generating well exc. for file upload
* Revise generated test for v3 vs v4 differences
* Leave details of multi-part handling to the user for now
* change default version to use the highest version known
* SE client changes for Helidon 4
* A few fixes; add new v4 SE samples
* Fix v3/v4 routing prep
* Improve version handling if web site is inaccessible; add test
* Reworking parameter conversion and required and validation handling
* Add generation of a return value record per response for each operation
* Improvements to the result record generation
* More changes
* Remove change in whitespace in v3 output
* More progress on parameter handling
* WIP - refactor parameter-returning methods to inner class along with return records
* Reorg of op helpers
* Use no-op for handling map in path, query, header, cookie - need to revise later
* Binary form param handling
* Clean-up and consistency check bt useAbstractClass and not
* Improve result builders
* Add new samples files
* Fix a few issues
* Update samples after rebase; add build steps for v3 and v4 uac github actions
* Remove v3 se useAbstractClass test - creates some bad code
* Generated doc updates
* Fix missing newline
* Improve Javadoc for generated Result; add convenience Result.send method
* Add bean val. for body param if needed
* Restructure generated records for declared responses; add Generated annotation selectively
* Fix typo
* In sample generation, force a stable generatorVersion value to avoid confusing builds and up-to-date samples checking
* Fix up white space in older generation
* Generate PartsUtils only with useAbstractClass = true
* Adopt some review comments; more to come
* Review comments; notably, switch to using the first path segment to group operations rather than the tags items
* Improve status handling a bit
* Add new generated sample files
* Add missing new samples files
* Quite a few updates, esp. to generated samples
* New config file for sample
* Updates samples
* Add updates to .openapi-generator/FILES contents
* fix#19211 kotlin-spring flag delegatePattern together with skipDefaultInterface generates broken code
* add kotlin-springboot-delegate-nodefaults to the workflow
* fix Platform declaration clash
* move kotlin-springboot-delegate-nodefaults to the kotlin-server-jdk17 file
* fixed empty line
* [python-fastapi] Added some tests for FastAPI generator
1. Checks the generation of the implementation package.
2. Checks if the endpoints with and without descriptions generate correct
output.
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* [python-fastapi] Raise 500 if there is no implementation
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
---------
Signed-off-by: Nikita Vakula <programmistov.programmist@gmail.com>
* Add bytestring package to dependencies of generated haskell code
This broke in https://github.com/OpenAPITools/openapi-generator/pull/18047
where tvh introduced an import of Data.ByteString.Lazy. The added
bytestring package was available in some but not all cases.
* update workflow to test haskell servant ping
* update samples
---------
Co-authored-by: Bastian Senst <senst@cp-med.com>
* fix#18005: Prevent adding 2 times the "?" when not required and nullable = true
* fix#18005: Fix carriage return diff
* update samples
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>