* feat(gdscript): sketch implementation of gdscript target language
This does not really work yet, but it's a start.
Results are not denormalized, no support for enums nor datetimes,
and thousands of other features are missing.
I still don't know how we are going to denormalize JSON+LD
without writing a whole GDScript lib for it…
* feat: add an exhaustive list of keywords reserved in GDScript
I've also provided the small python script I used to generate the list.
* refacto(gdscript): start using partials in templates
Whilst I'm racking my brains trying to figure out integration testing…
* test(gdscript): prepare a demo and integration testing
* fix(gdscript): do not use subclasses, use plain POGO
(plain ol' godot object)
One: I don't know how they work under-the-hood.
Two: I'm very confused over-the-hood.
Tri: We do not need them.
* refacto(gdscript): move demo files to their own directory
I know I'm making a lot of commits for not much,
but now I'm opening the sample files with Godot as well,
and doing unholy things with filesystems,
so I'm not taking any chances.
It's all going to be squashed anyway. :)
* fix(gdscript): sample as a Godot project
It works ! I can now write integration tests in GDScript.
The real work starts now.
/spend 25h
* feat(gdscript): serialize and send body params
The test suite is now past its first hurdle, the 415 HTTP status code,
and went straight into an unexpected error 500.
I suspect the server does not like me trying to set the pet id at 0,
because that's what we're trying to do right now.
Godot is crashing a lot, mostly because I don't know how to make Callable.NOOP
and my current solution hints at optional on_success and on_failure,
yet if we omit them the engine will ragequit.
* feat(gdscript): check request body for required yet missing properties
Now we'll get a nice error when we forget to set a required property.
The demo is now able to:
- connect
- create a user
- login as that user
- create a pet
* feat(gdscript): namespace core classes as well with apiPrefixName
This makes our usage of `class_name` a little more acceptable.
* feat(gdscript): support prefixes and suffixes for class names
This will crutch namespacing well enough for most uses.
* feat(gdscript): handle enums, naively
* feat(gdscript): support basic API endpoint param constraints
- minLength
- maxLength
- minItems
- maxItems
- minimum
- maximum
- pattern (no flags)
* feat(gdscript): handle header params and header customization
We also support serializing to application/x-www-form-urlencoded now.
Next up: DateTimes !
* feat(gdscript): handle Date and DateTime like Strings
There's no timezone support in Godot for DateTimes.
* feat(gdscript): support plain text responses
* feat(gdscript): support collections of models
Those are Arrays, not custom collection objects.
* feat(gdscript): configure default host from OAS
* feat(gdscript): some documentation and better config
We don't need no factories nor singletons ; config is enough.
* docs(gdscript): document usage a little
* feat(gdscript): add more reserved words, skip jsonld models and configure features
We can now generate a client for an OAS server running ApiPlatform (PHP).
* feat(gdscript): improve logging with a configurable log level
* feat(gdscript): add support for Basic Bearer and Header ApiKey
(but I can't find the `description` template handler)
* fix(gdscript)
Too late to amend >.<
* fix(gdscript)
dangsarnit
* chore(gdscript): clean up a sprint artifact
* fix: don't forget the HTTP error code when relevant
* feat: use Resource as base class for models
* fix. Default string values now with "quotes"
* temporary remove settings as godot api have changed
* kick ci
* docs: review gdscript java class
* feat: support for TLS, some refacto, some review
There's still a lot of holes, TODOs and FIXMEs.
* feat: experimental support of Request inline objects
The inline response objects are still not supported.
* feat(gdscript): support inline request and response objects
* chore(gdscript): review the templates
* fix(gdscript): unexpected nulls in default values
{{#if defaultValue}} evaluates to true for null if we call super here.
* refacto(gdscript): replace "bee" prefix by "bzz", use a constructor
Now we pass the config and the client via the constructor.
This reduces the area of the public surface a bit, for the better I think.
This commit also cleans up the class name shenanigans.
* fix(gdscript): add missing file
* test(gdscript): refactor the test project to use the generated lib as addon
Since there is no singleton in the generated client, the addon need not be enabled in the project configuration to be usable.
The --headless mode is broken for now, as things changed in Godot 4 since the beta.
* docs(gdscript): document petstore server ADR
* test(gdscript): add GUT and an integration test
We used the latest stable GUT, but a feature we're going to need was merged today, so we'll need to update it either to master or to the next release at some point.
* refacto(gdscript, breaking): use an ApiResponse object in success callbacks
/spent 6d since the beginning
* test(gdscript): update integration tests
/spend 2h
* docs(gdscript): explain the new ApiResponse
Also moving core templates to their own subdir, for clarity.
/spend 10m
* chore(gdscript): review, document, clean up
/spend 2h
* test(gdscript): test the delete operation as well
/spend 7m
* feat(gdscript): update GUT and exit with appropriate code
/spend 2h
* docs(gdscript): add Gdscript's PI
Hire me while I'm available ! :D
I'd rather code than make a CV.
* feat(gdscript): support reserved keywords
Also adding some more assertions,
and using our own OAS file now.
/spend 3h
* refacto(gdscript): use "base" instead of "bee"
/spend 1h
* feat(gdscript): improve descriptions
/spend 1h
* fix(gdscript): await before polling
Contributed by @jchu231
* docs(gdscript): review the template files
* docs(gdscript): review and generate docs
---------
Co-authored-by: Bagrat <b.saatsazov@gmail.com>
* Add of a first working generator for FastEndpoints framework
Generator that support the basics of a FastEndpoints project
https://fast-endpoints.com/
* Add respose code documentation support
* Add an option to enable use of problem details
* Clean enum and model
* Add an option to generate record for requests/models
* Update sample
* Add support of nullable types
* Add option to enable authentication
* Add option to generate validators
* Clean readme.md file
* Add option to enable response caching
* update readme template
* Add missing files references
* Update generated sample
* Add link to documentation
* Add generator documentation
* correctly support packageName
supportingFiles additions moved to processOpts()
* improve useAuthentication option handling
Avoid to copy an empty file
* processOpts, move call to parent at the end
* Update generated sample
* Refactor and fix super.processOpts(); call order
* Handle the case of multi-line description
* Rename field to match naming conventions
* Add useApiVersioning option
* Update generated sample
* Add generator documentation
* Fix record when model contains optional properties
* Add configuration files for each option
* Add sample project for each configuration
* Add GitHub Action workflow for sample projects
* Add FastEndpoints BindFrom attribute on path, query and form params
* Update sample generated projects
* Fix validator template
* fix alphabetical order
* Use fully qualified name for FastEndpoints
* Add options to set GUID to be used in sln file
* update sample projects
* Update generators.md
* Fix path in github workflow
* Put readme, gitignore and solution file at the root of generated project
* update sample projects
* Remove the projectGuid option
This Guid need to be constant, it is related to project type
* update sample projects
* [Kotlin] Properly document nonPublicApi CLI option
* [Kotlin] Respect parameter name of parent KSerializer to avoid miss-behavior
* [Kotlin] Introduce support for Kotlin Explicit API Mode for Kotlin-Client generator (resolves#16506)
* Added Rust Reqwest trait based client
* Fixed Cargo imports for reqwest trait template
* Added support for mockall to Rust reqwest trait library
* Added MockApiClient when mockall and topLevelClient are enabled
* Added missing flags to Rust generator documentation
* feat: add support for single argument and bon builder
Adds support for single argument and bon building for the new
reqwest-trait generator
* Rebuilt rust samples
---------
Co-authored-by: Troy Benson <troybensonsa@gmail.com>
* Add licenseName option to typescript
* Update documentation
* Fix import in test
* Consolidate typescript test OptionsProviders
* Rename Typescript to TypeScript
* fix attemp
* use java.time.Instant
* fix client gen
* Tweeks
* header and form
* use scala 3 enum
* more tweeks
* add additional properties; add auth
* add form media type
* add modelsOnly
* add unit tests
* add petstore samples
* add doc
* add new samle to .github/workflows/samples-scala.yaml
* update build.sbt template
* simply the baseclient
* add None to optional field
* tweek auth model and format
---------
Co-authored-by: Jenny Leahy <jennyleahy@JENNYLEAHY.localdomain>
* [swift6] upload files as data
* [swift6] upload files as data
* [swift6] upload files as data
* [swift6] upload files as data
* [swift6] upload files as data
* [swift6] upload files as data
* [swift6] make async await the default response library
* [swift6] make async await the default response library
* [swift6] make async await the default response library
* [Kotlin] Add a new additional property to configure Jackson's `failOnUnknownProperties`
Default to false
* [Kotlin] Unconditionally import `com.fasterxml.jackson.databind.DeserializationFeature`
* [Kotlin] Refactor and add test
* 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
* feat (JAVA SPRING RESTCLIENT) 19406: Add single request parameter for Spring RestClient
Closes#19406
* chore (JAVA SPRING RESTCLIENT) 19406: Add new sample to jdk 17 tests
* fix (JAVA SPRING RESTCLIENT) 19406: Fix sample build
* [Java] Add a new additional property to configure Jackson's `failOnUnknownProperties`
* Move `FAIL_ON_UNKNOWN_PROPERTIES` property to JavaClientCodegen
* Template `FAIL_ON_UNKNOWN_PROPERTIES` for other libraries beside retrofit2
* Default `failOnUnknownProperties` to false for all Java Client libraries
* Fix integration tests
Add the `failOnUnknownProperties: true` additional properties to generate the
expected mapper
* 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
* use default values for required vars when available
* update tests to existing config file
* cleanup OAS test
* Remove setting value in Get.
* Use Pascal Case for variable naming in Getter Function
* add a CLI option
* add a CLI option
* add a CLI option
* 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
* feat(typescript-axios): allow configuration of axios version
* docs(typescript-axios): add readme docs for axiosVersion config option
* test(typescript-axios): add unit tests for custom axios version
* docs(typescript-axios): fix up typescript-axios generator docs