[C++] [Client] Added cpp-oatpp-client #21711
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Worked on the implementation of the Oat++ Client generator yesterday, and it's currently in a functional state although there are a couple of corner cases I don't like, specifically around how I handled Multipart form data and how return models have to be parsed by the user (allows for better handling of specs that return different models based on return code). I've done some limited testing with the client and it appears to work well with the server.
I had wanted to dynamically generate an API tester with the main.cpp, however C++ has poor support for argument parsing and I wanted to keep the dependencies as minimal as possible for both the client and the server as I plan to add support for some of the oat++ modules in the future (mbedtls is probably next).
This coupled with the client provide a minimal dependency C++ client and server implementation that are designed to work together. The only other generators we have that work like this are the Qt ones which come with Qt as a dependency (a non-starter as a dependency for me).
Also took the updates from #21601 and include a Oat++ client test spec to match the server one.
Like with the server, I maintain a 7.0.0 branch of this generator locally and that's the version where I do the majority my testing.
PR checklist
Commit all changed files.
This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example
./bin/generate-samples.sh bin/configs/java*.IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
master(upcoming7.x.0minor release - breaking changes with fallbacks),8.0.x(breaking changes without fallbacks)"fixes #123"present in the PR description)@ravinikam (2017/07) @stkrwork (2017/07) @etherealjoy (2018/02) @MartinDelille (2018/03) @muttleyxd (2019/08) @aminya (2025/05)