* fix(c): Remove duplicate code generation for UUID path parameters
The C generator was generating duplicate path parameter handling code
when a parameter had format: uuid. This occurred because UUID parameters
have both isString=true and isUuid=true flags set, causing both the
{{#isString}} and {{#isUuid}} template blocks to execute.
The duplicate {{#isUuid}} block has been removed since it generated
identical code to the {{#isString}} block. This makes UUID parameters
consistent with email parameters, which already work this way
(isEmail=true and isString=true, but only use the {{#isString}} block).
The generated code now compiles successfully without duplicate variable
declarations.
* test(c): Add UUID path parameter test case to petstore
Adds endpoint with UUID path parameter to verify C generator produces compilable code without duplicate variable declarations.
* chore(samples): Regenerate all C samples with template fix
Regenerated all C sample variants to include the UUID path parameter example.
* [C-Curl] Client generator does not handle float properly (#21092)
- Change function signature to float*
- Change generator to convert float to string
- Similar change for double and long
* [C-Curl] Client generator does not handle float properly (#21092)
- Generate samples
- Fix generator for headers and path params
* Revert "[C-Curl] Client generator does not handle float properly (#21092)"
This reverts commit ba044a65d5.
* Revert "[C-Curl] Client generator does not handle float properly (#21092)"
This reverts commit f99c5b0382.
* [C-Curl] Client generator does not handle float properly (#21092)
- Convert float, double and long to string
- Generate samples
* [C-Curl] Client generator does not handle float properly (#21092)
- Add missing yaml example file
* [C-Curl] Client generator does not handle float properly (#21092)
- Transfer float and double in scientific notation with resp. 7 and 16 decimals
- Adapt string size to number of required characters
* [C-Curl] Client generator does not handle float properly (#21092)
- Fix unused variable.
- Fix snprintf string
* * [C-Curl] Client generator does not handle float properly (#21092)
- Generating samples
* * [C-Curl] Client generator does not handle float properly (#21092)
- Always allocate the exact string size
* [C][Client] Generate CMakeLists.txt for all C sample clients
The sample client defined in bin/configs/c.yaml has CMakeLists.txt in
its .openapi-generator-ignore. It's is the only C client that doesn't
(re-)generate CMakeLists.txt, the remaining two seem fine regardless.
* [C][Client] Allow user-defined CMAKE_C_FLAGS
* [C][Client] Remove useless message() calls from CMakeLists.txt
find_package() prints success/failure messages, no need to do it twice.
* [C] Deprecate *_create() to avoid *_free() confusion
The behaviour of *_free() doesn't match *_create(), so the user should
avoid using them together. But they still need *_free() to clean up
library-allocated objects, so add a _library_owned flag to each struct
as an attempt to tell them apart. This isn't perfect though, because the
user may neglect to zero the field, but they would still see a warning
once in a while so it serves its purpose.
To prevent the new deprecation warnings (intended for the user) from
showing up during the library build itself, define a new family of
*_create_internal() functions, and turn *_create() into simple wrappers.
* Update samples
* add eafer to c technical committee
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
Note: this does not fix anything else; for example all numerical
types, including float and double, are still incorrectly cast to
to long int before string conversion.
* [C] Fail build on implicit function declarations
* [C] Complete changes from patch 34c3f8c7aa
* Update samples
* [C] Fail build for global functions with no declaration
* [C] Use "static" for apiClient.c internal functions
* Update samples
* replace removed forkMode
* remove junit runner where it's not needed
* update samples without skipping test files, but skip files named "FILES"
* revert overwriting custom tests, add custom java tests to list
* add one sample to CircleCI, fix various Java tests
* [C] Deal with binary api parameters
With this change, the bodyParameters array can also be binary, so pass
its length around instead of relying on strlen().
* [C] Fix a few remaining enum issues
* [C] Install headers and include any_type.h header
* [C] Don't require C++ to compile C code
* [C] Test binary bodies and path enums in schemas
* Update samples
---------
Co-authored-by: Sam Bingner <sam@corellium.com>
* [C] Clear the response code from previous api calls
Before making an api call, reset apiClient->response_code to zero. That
will protect us from checking stale values if the curl request fails.
* [C] Check that string arguments are not null
Check early on that the arguments are not null, to prevent crashes on
strdup() calls.
* [C] Don't attempt to fill in a type with error info
Check if the api call returned an error before attempting to parse the
reply as the expected type.
* [C] Handle binary and integer return types
* [C] Update test schemas with binary and integer return types
* Update samples
* [C] Don't convert post body strings to JSON
If the body provided for the api request is a just a string itself,
don't try to convert it to JSON, simply submit the string.
* [C] Implement BearerToken authentication
* [C] Handle nullable fields correctly
* [C] Fix implementation of FromString for enums
* [C] Update the test schemas to cover the changes
* Update samples
* Fix the updated samples
* [C] Add the new samples folder to the CI workflow
* C: add a template for an empty any_type.h header
Some generated C apis fail to build because the source files get
'#include "any_type.h"' lines, but no such header gets generated. As a
simple fix, add a new template for an empty file with that name. This is
enough to fix the problem for us, because all the generic type stuff is
handled by object_t.
* C: fix enums
I'm guessing that enums have not been used much with the C generator
before, because they always seem to produce code that doesn't build, or
that tries to free them after use. This patch fixes all the problems
we've encountered so far, except for those that need checking the return
type. I'll come back to that later.
* C: fix confusion of 'classname'/'classFilename'
* C: fix issues with returned enums
Currently, the C templates never check if a function returns an enum
inside mustache, so when that happens the generated code has broken
return types and doesn't build. I originally tried to fix this by
extending CodegenOperation to implement a 'returnTypeIsEnum' check, but
William Cheng suggested[1] that I use the existing 'returnProperty'
instead:
https://github.com/OpenAPITools/openapi-generator/pull/14379#discussion_r1064636735
So do that.
* C: update the samples
As required for a pull request, run the generate-samples.sh script and
commit the changes.
* update samples
---------
Co-authored-by: William Cheng <wing328hk@gmail.com>
* [Java/Microprofile] Add support for Jackson serialization & async interfaces using Mutiny in Java Microprofile library
* Regenerate samples & docs
* Add server generator
* Update client to set configKey by classname
* Remove debug remains and comments
* Adapt method override to upstream changes
* Regenerate samples
* Revert "Regenerate samples"
This reverts commit b5bcbdea90.
* Move additional 2xx response to dedicated OpenAPI document
Some other generators than those for Micronaut don't seem to be able to
handle this case, so we don't add it to the general pet store document.
* Make filename consistent with other files in the folder
* Regenerate Microprofile client and server samples
* Generate samples
* Update documentation
* Generate samples
* Remove left-over `*.orig` files from Git merges
* Regenerate samples
* Regenerated samples
* changed generator name to "java-microprofile"
* added the new folder to .github/workflows/samples-java-server-jdk8.yaml so that CI will test it moving forward
* Renamed JavaMicroprofileServerCodegen.java
* regenerated samples
* only enable configKeyFromClassName if configKey is not set
* Updated documentation
* Change samples to use junit 4
* Fix junit 4 test classes
* run ensure up-to-date script
* fix kotlin test errors
---------
Co-authored-by: pravussum <pravussum@users.noreply.github.com>
Co-authored-by: frank <frank.buechel@kiwigrid.com>
Co-authored-by: Oscar <oscar.obrien@kiwigrid.com>
Co-authored-by: oscarobr <133783370+oscarobr@users.noreply.github.com>
* add initial openapi config and java generated files
* add java implementation for adding generator version
* regenerate sample client files
* remove tabs
* only show generated version if build info exists
* set build info for batch generation
* update generator doc for new global flag
* use existing property for generator version
* update templates to include generator version
* update templates for better generator version syntax
* revert undesired changes
* regenerate samples for openapi client
* update templates to correct formatting/newlines
* correct description text and add to usage doc
* add generator cli option for all codegen types
* use more concise version info; update existing codegens to support new prop
* correct wrong prop reference
* add initial test coverage for new prop
* update last (scala) templates with new prop
* update samples after upstream merge
* use consistent version output
* use better sample project id/name
* revert using option for generator version in templates
The EOL is missing so let's add it in order to comply with POSIX standard:
Line
> A sequence of zero or more non- <newline> characters plus a terminating <newline> character.