From f186960902bcbef0c752b8f558690d2e71dd5bd0 Mon Sep 17 00:00:00 2001 From: Stefan Witkowski Date: Thu, 27 Aug 2026 16:46:42 +0200 Subject: [PATCH 1/4] fix(cpp-httplib-server): generate top-level enum models --- .../cpp-httplib-server/model-header.mustache | 33 +++++++++++ .../cpp-httplib-server/model-source.mustache | 6 ++ .../CppHttplibServerCodegenModelTest.java | 21 ++++--- .../3_0/cpp-httplib-server/feature-test.json | 4 ++ .../feature-test/models/TopLevelStatus.cpp | 7 +++ .../feature-test/models/TopLevelStatus.h | 59 +++++++++++++++++++ 6 files changed, 121 insertions(+), 9 deletions(-) create mode 100644 samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.cpp create mode 100644 samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h diff --git a/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache b/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache index fa0176786b67..d29ae7b7ee05 100644 --- a/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache @@ -5,6 +5,7 @@ {{#model}} // System headers #include +#include {{#vendorExtensions.filteredImports}} {{{.}}} {{/vendorExtensions.filteredImports}} @@ -16,6 +17,37 @@ namespace {{vendorExtensions.modelNamespace}} { +{{#isEnum}} +enum class {{vendorExtensions.modelClassName}} { + {{#allowableValues}}{{#enumVars}} + {{name}}{{^-last}},{{/-last}} + {{/enumVars}}{{/allowableValues}} +}; + +inline void to_json(nlohmann::json& j, const {{vendorExtensions.modelClassName}}& value) +{ + switch (value) + { + {{#allowableValues}}{{#enumVars}} + case {{vendorExtensions.modelClassName}}::{{name}}: j = {{#isString}}"{{value}}"{{/isString}}{{^isString}}{{value}}{{/isString}}; break; + {{/enumVars}}{{/allowableValues}} + } +} + +inline void from_json(const nlohmann::json& j, {{vendorExtensions.modelClassName}}& value) +{ + {{#allowableValues}}{{#enumVars}} + if (j == {{#isString}}"{{value}}"{{/isString}}{{^isString}}{{value}}{{/isString}}) + { + value = {{vendorExtensions.modelClassName}}::{{name}}; + return; + } + {{/enumVars}}{{/allowableValues}} + throw nlohmann::json::type_error::create(302, "Invalid value for {{vendorExtensions.modelClassName}}", &j); +} + +{{/isEnum}} +{{^isEnum}} {{#vendorExtensions.isOneOfSchema}} // oneOf schema - type alias for std::variant using {{vendorExtensions.modelClassName}} = std::variant< @@ -252,5 +284,6 @@ private: } // namespace {{vendorExtensions.modelNamespace}} +{{/isEnum}} {{/model}} {{/models}} diff --git a/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-source.mustache b/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-source.mustache index 414becd4a421..eabdc902a7d8 100644 --- a/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-source.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-source.mustache @@ -3,6 +3,11 @@ {{#models}} {{#model}} +{{#isEnum}} +#include "{{vendorExtensions.modelClassName}}.h" + +{{/isEnum}} +{{^isEnum}} {{^vendorExtensions.isOneOfSchema}} {{^vendorExtensions.isAnyOfSchema}} #include "{{vendorExtensions.modelClassName}}.h" @@ -79,5 +84,6 @@ std::string {{classname}}::{{enumName}}ToString({{classname}}::{{enumName}} valu {{^vendorExtensions.isOneOfSchema}}{{^vendorExtensions.isAnyOfSchema}} } // namespace {{vendorExtensions.modelNamespace}} {{/vendorExtensions.isAnyOfSchema}}{{/vendorExtensions.isOneOfSchema}} +{{/isEnum}} {{/model}} {{/models}} \ No newline at end of file diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java index 0044e8b167a9..e3e26b7603f3 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java @@ -274,15 +274,18 @@ public void enumModelTest() { final CodegenModel model = codegen.fromModel("Status", enumSchema); - // Note: The C++ httplib server generator may not process enum-only models - // in the same way as regular object models. The model might be null or empty. - if (model != null) { - Assert.assertEquals(model.name, "Status"); - // Check if it's marked as an enum in vendor extensions - if (model.vendorExtensions.containsKey("x-is-enum")) { - Assert.assertEquals(model.vendorExtensions.get("x-is-enum"), true); - } - } + Assert.assertNotNull(model); + Assert.assertEquals(model.name, "Status"); + Assert.assertTrue(model.isEnum, "top-level enum schemas must remain enum models"); + Assert.assertNotNull(model.allowableValues); + Assert.assertEquals(model.allowableValues.get("values"), + java.util.Arrays.asList("ACTIVE", "INACTIVE", "PENDING")); + + final CodegenModel processedModel = codegen.postProcessAllModels( + wrapForPostProcessAllModels("Status", model)) + .get("Status").getModels().get(0).getModel(); + Assert.assertNotNull(processedModel.vendorExtensions.get("modelClassName")); + Assert.assertEquals(((List) processedModel.allowableValues.get("enumVars")).size(), 3); } @Test(description = "convert model with nullable property") diff --git a/modules/openapi-generator/src/test/resources/3_0/cpp-httplib-server/feature-test.json b/modules/openapi-generator/src/test/resources/3_0/cpp-httplib-server/feature-test.json index 2ffb304ceb53..7f61b18fe837 100644 --- a/modules/openapi-generator/src/test/resources/3_0/cpp-httplib-server/feature-test.json +++ b/modules/openapi-generator/src/test/resources/3_0/cpp-httplib-server/feature-test.json @@ -1006,6 +1006,10 @@ } } }, + "TopLevelStatus": { + "type": "string", + "enum": ["active", "inactive", "pending"] + }, "SimpleObject": { "type": "object", "required": ["id", "name"], diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.cpp b/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.cpp new file mode 100644 index 000000000000..63e676e689e9 --- /dev/null +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.cpp @@ -0,0 +1,7 @@ +/** + * This file is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +#include "TopLevelStatus.h" \ No newline at end of file diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h new file mode 100644 index 000000000000..8a7697bc5357 --- /dev/null +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h @@ -0,0 +1,59 @@ +/** + * This file is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +#pragma once +// System headers +#include +#include + +namespace models +{ + + enum class TopLevelStatus + { + ACTIVE, + INACTIVE, + PENDING + }; + + inline void to_json(nlohmann::json &j, const TopLevelStatus &value) + { + switch (value) + { + case TopLevelStatus::ACTIVE: + j = "active"; + break; + case TopLevelStatus::INACTIVE: + j = "inactive"; + break; + case TopLevelStatus::PENDING: + j = "pending"; + break; + } + } + + inline void from_json(const nlohmann::json &j, TopLevelStatus &value) + { + const std::string serializedValue = j.get(); + if (serializedValue == "active") + { + value = TopLevelStatus::ACTIVE; + return; + } + if (serializedValue == "inactive") + { + value = TopLevelStatus::INACTIVE; + return; + } + if (serializedValue == "pending") + { + value = TopLevelStatus::PENDING; + return; + } + throw nlohmann::json::type_error::create(302, "Invalid value for TopLevelStatus", &j); + } + +} // namespace models \ No newline at end of file From c877a328ccbba5d8fa36b8b63424a9e0fd64ec67 Mon Sep 17 00:00:00 2001 From: Stefan Witkowski Date: Fri, 28 Aug 2026 11:15:37 +0200 Subject: [PATCH 2/4] fix(cpp-httplib-server): preserve enum string values --- .../cpp-httplib-server/model-header.mustache | 4 ++-- .../CppHttplibServerCodegenModelTest.java | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache b/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache index d29ae7b7ee05..375746e52313 100644 --- a/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache @@ -29,7 +29,7 @@ inline void to_json(nlohmann::json& j, const {{vendorExtensions.modelClassName}} switch (value) { {{#allowableValues}}{{#enumVars}} - case {{vendorExtensions.modelClassName}}::{{name}}: j = {{#isString}}"{{value}}"{{/isString}}{{^isString}}{{value}}{{/isString}}; break; + case {{vendorExtensions.modelClassName}}::{{name}}: j = {{#isString}}"{{{value}}}"{{/isString}}{{^isString}}{{value}}{{/isString}}; break; {{/enumVars}}{{/allowableValues}} } } @@ -37,7 +37,7 @@ inline void to_json(nlohmann::json& j, const {{vendorExtensions.modelClassName}} inline void from_json(const nlohmann::json& j, {{vendorExtensions.modelClassName}}& value) { {{#allowableValues}}{{#enumVars}} - if (j == {{#isString}}"{{value}}"{{/isString}}{{^isString}}{{value}}{{/isString}}) + if (j == {{#isString}}"{{{value}}}"{{/isString}}{{^isString}}{{value}}{{/isString}}) { value = {{vendorExtensions.modelClassName}}::{{name}}; return; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java index e3e26b7603f3..cdb521a753a1 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java @@ -35,13 +35,17 @@ public class CppHttplibServerCodegenModelTest { * Wraps a single model the way {@link org.openapitools.codegen.DefaultGenerator} * does before calling {@code postProcessAllModels}, so tests can exercise the full * enum vendor-extension pipeline (identifier + original-value derivation), not just - * the intermediate state produced by {@code fromModel}. + * the intermediate state produced by {@code fromModel}. This mirrors + * {@code DefaultGenerator}'s {@code processModels}, which runs {@code postProcessModels} + * (and, for C++, {@code postProcessModelsEnum} with it) before {@code postProcessAllModels} + * is ever invoked. */ - private Map wrapForPostProcessAllModels(String name, CodegenModel model) { + private Map wrapForPostProcessAllModels(CppHttplibServerCodegen codegen, String name, CodegenModel model) { final ModelMap modelMap = new ModelMap(); modelMap.setModel(model); final ModelsMap modelsMap = new ModelsMap(); modelsMap.setModels(Collections.singletonList(modelMap)); + codegen.postProcessModels(modelsMap); final HashMap allModels = new HashMap<>(); allModels.put(name, modelsMap); return allModels; @@ -173,7 +177,7 @@ public void arrayOfEnumsDeclaresValidUpperCaseIdentifiersTest() { final CodegenModel model = codegen.fromModel("ModelWithColorArray", schema); final CodegenModel processedModel = codegen.postProcessAllModels( - wrapForPostProcessAllModels("ModelWithColorArray", model)) + wrapForPostProcessAllModels(codegen, "ModelWithColorArray", model)) .get("ModelWithColorArray").getModels().get(0).getModel(); CodegenProperty arrayProp = processedModel.vars.get(0); @@ -221,7 +225,7 @@ public void numericEnumPropertyTest() { // postProcessAllModels, since that's the single place both the identifier and the // original spec value are derived together (see enumSerializationUsesOriginalSpecValueTest). final CodegenModel processedModel = codegen.postProcessAllModels( - wrapForPostProcessAllModels("UserStatusModel", model)) + wrapForPostProcessAllModels(codegen, "UserStatusModel", model)) .get("UserStatusModel").getModels().get(0).getModel(); CodegenProperty statusProp = processedModel.vars.get(0); Assert.assertTrue((boolean) statusProp.vendorExtensions.getOrDefault("isEnum", false)); @@ -244,7 +248,7 @@ public void enumSerializationUsesOriginalSpecValueTest() { final CodegenModel model = codegen.fromModel("Pet", schema); final CodegenModel processedModel = codegen.postProcessAllModels( - wrapForPostProcessAllModels("Pet", model)) + wrapForPostProcessAllModels(codegen, "Pet", model)) .get("Pet").getModels().get(0).getModel(); CodegenProperty statusProp = processedModel.vars.get(0); @@ -282,7 +286,7 @@ public void enumModelTest() { java.util.Arrays.asList("ACTIVE", "INACTIVE", "PENDING")); final CodegenModel processedModel = codegen.postProcessAllModels( - wrapForPostProcessAllModels("Status", model)) + wrapForPostProcessAllModels(codegen, "Status", model)) .get("Status").getModels().get(0).getModel(); Assert.assertNotNull(processedModel.vendorExtensions.get("modelClassName")); Assert.assertEquals(((List) processedModel.allowableValues.get("enumVars")).size(), 3); From 67be0476e929805564f9f50370c6dbbf3b5e08ec Mon Sep 17 00:00:00 2001 From: Stefan Witkowski Date: Fri, 28 Aug 2026 11:21:28 +0200 Subject: [PATCH 3/4] fix(cpp-httplib-server): regenerate samples --- .../feature-test/.openapi-generator/FILES | 2 + .../cpp-httplib-server/feature-test/README.md | 13 +++ .../feature-test/models/Address.h | 1 + .../feature-test/models/Animal.h | 1 + .../feature-test/models/ArrayTypes.h | 1 + .../feature-test/models/BankAccount.h | 1 + .../feature-test/models/Company.h | 1 + .../feature-test/models/CreatedResponse.h | 1 + .../feature-test/models/CreditCard.h | 1 + .../feature-test/models/Department.h | 1 + .../feature-test/models/Dog.h | 1 + .../feature-test/models/Employee.h | 1 + .../feature-test/models/EnumTypes.h | 1 + .../feature-test/models/ErrorResponse.h | 1 + .../feature-test/models/NotFoundResponse.h | 1 + .../models/NullableOptionalTypes.h | 1 + .../feature-test/models/PaymentMethod.h | 1 + .../feature-test/models/PrimitiveTypes.h | 1 + .../feature-test/models/SimpleObject.h | 1 + .../feature-test/models/StringOrNumber.h | 1 + .../feature-test/models/SuccessResponse.h | 1 + .../models/TestAllParameterTypes200Response.h | 1 + .../models/TestApiKeySecurity200Response.h | 1 + .../models/TestBasicSecurity200Response.h | 1 + .../models/TestBearerSecurity200Response.h | 1 + .../models/TestCookieParameters200Response.h | 1 + .../models/TestHeaderParameters200Response.h | 1 + .../models/TestHeaderParameters401Response.h | 1 + .../models/TestOAuth2Security200Response.h | 1 + .../models/TestQueryParameters200Response.h | 1 + .../TestQueryParametersDeepObjectParameter.h | 1 + .../feature-test/models/TopLevelStatus.cpp | 11 ++- .../feature-test/models/TopLevelStatus.h | 92 ++++++++++--------- .../petstore/models/ApiResponse.h | 1 + .../petstore/models/Category.h | 1 + .../petstore/models/ComplexParamsResponse.h | 1 + .../petstore/models/DeepObj.h | 1 + .../petstore/models/DeepObjBaz.h | 1 + .../petstore/models/NullableExample.h | 1 + .../petstore/models/Order.h | 1 + .../cpp-httplib-server/petstore/models/Pet.h | 1 + .../petstore/models/PetOrCategory.h | 1 + .../cpp-httplib-server/petstore/models/Tag.h | 1 + .../cpp-httplib-server/petstore/models/User.h | 1 + 44 files changed, 109 insertions(+), 49 deletions(-) diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/.openapi-generator/FILES b/samples/server/petstore/cpp-httplib-server/feature-test/.openapi-generator/FILES index 05151c84f82a..01f3994a50bd 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/.openapi-generator/FILES +++ b/samples/server/petstore/cpp-httplib-server/feature-test/.openapi-generator/FILES @@ -68,3 +68,5 @@ models/TestQueryParameters200Response.cpp models/TestQueryParameters200Response.h models/TestQueryParametersDeepObjectParameter.cpp models/TestQueryParametersDeepObjectParameter.h +models/TopLevelStatus.cpp +models/TopLevelStatus.h diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/README.md b/samples/server/petstore/cpp-httplib-server/feature-test/README.md index 8889a4d4cb6f..b6591f3252ba 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/README.md +++ b/samples/server/petstore/cpp-httplib-server/feature-test/README.md @@ -520,6 +520,19 @@ std::string jsonString = json.dump(); // Deserialize from JSON auto parsedModel = models::TestQueryParametersDeepObjectParameter::fromJson(nlohmann::json::parse(jsonString)); ``` +#### models::TopLevelStatus + +```cpp +// Create a model +auto model = models::TopLevelStatus(); + +// Serialize to JSON +nlohmann::json json = models::TopLevelStatus::toJson(model); +std::string jsonString = json.dump(); + +// Deserialize from JSON +auto parsedModel = models::TopLevelStatus::fromJson(nlohmann::json::parse(jsonString)); +``` ## Implementing API Handlers diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Address.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Address.h index eaf778a713e4..b717d2a02bce 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Address.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Address.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Animal.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Animal.h index e3f179bc7196..37b7a93b84c3 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Animal.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Animal.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/ArrayTypes.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/ArrayTypes.h index 2f93f30e1416..88323e405e9b 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/ArrayTypes.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/ArrayTypes.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/BankAccount.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/BankAccount.h index e5d88115e447..9e2a10abd336 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/BankAccount.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/BankAccount.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Company.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Company.h index acb61e0db444..28edd1949363 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Company.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Company.h @@ -8,6 +8,7 @@ // System headers #include #include +#include #include #include "Address.h" #include "Department.h" diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/CreatedResponse.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/CreatedResponse.h index b3f94e4cec83..aec3a2aa2f4c 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/CreatedResponse.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/CreatedResponse.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/CreditCard.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/CreditCard.h index f53af49ef132..1c38e890da34 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/CreditCard.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/CreditCard.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Department.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Department.h index fa133c2bed92..a3ed69779cc0 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Department.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Department.h @@ -8,6 +8,7 @@ // System headers #include #include +#include #include #include "Employee.h" diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Dog.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Dog.h index fc075c18b8bd..505ef3d3d876 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Dog.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Dog.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Employee.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Employee.h index 1a7bb642a773..9df3f9937035 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Employee.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Employee.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/EnumTypes.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/EnumTypes.h index 6ea087bf17e3..911a1dffb7f4 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/EnumTypes.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/EnumTypes.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/ErrorResponse.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/ErrorResponse.h index 72f143d780e9..45afc8e79090 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/ErrorResponse.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/ErrorResponse.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/NotFoundResponse.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/NotFoundResponse.h index 9b209b5d3f2e..ec9c422109f8 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/NotFoundResponse.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/NotFoundResponse.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/NullableOptionalTypes.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/NullableOptionalTypes.h index 7e5df57ad443..7b39df5194e2 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/NullableOptionalTypes.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/NullableOptionalTypes.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/PaymentMethod.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/PaymentMethod.h index 0f5d86c9fae5..b6a9b3be4d0e 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/PaymentMethod.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/PaymentMethod.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include "BankAccount.h" diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/PrimitiveTypes.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/PrimitiveTypes.h index 89894663074b..342d3bf2e543 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/PrimitiveTypes.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/PrimitiveTypes.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/SimpleObject.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/SimpleObject.h index eae83fbbe860..f77ee90b3f55 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/SimpleObject.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/SimpleObject.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/StringOrNumber.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/StringOrNumber.h index 5e6d40483e0e..ffa37b185ebc 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/StringOrNumber.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/StringOrNumber.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/SuccessResponse.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/SuccessResponse.h index a6de84bce543..7bda20bd017b 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/SuccessResponse.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/SuccessResponse.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestAllParameterTypes200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestAllParameterTypes200Response.h index ce9ade6be871..0b594a8f2e7d 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestAllParameterTypes200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestAllParameterTypes200Response.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestApiKeySecurity200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestApiKeySecurity200Response.h index f2ebdc38cc2d..cc0f028b3b90 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestApiKeySecurity200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestApiKeySecurity200Response.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBasicSecurity200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBasicSecurity200Response.h index c2a923e72215..03d276255ce4 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBasicSecurity200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBasicSecurity200Response.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBearerSecurity200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBearerSecurity200Response.h index 0cb7cbe8421d..e42970411c6c 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBearerSecurity200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBearerSecurity200Response.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestCookieParameters200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestCookieParameters200Response.h index a5548cc28b0d..b0d9e493026e 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestCookieParameters200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestCookieParameters200Response.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters200Response.h index cb091980a63d..83bee433420b 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters200Response.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters401Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters401Response.h index 7b6e0d5ed738..f2b693fbe6ab 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters401Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters401Response.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestOAuth2Security200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestOAuth2Security200Response.h index 8e232d4866a2..03197fd1f788 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestOAuth2Security200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestOAuth2Security200Response.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParameters200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParameters200Response.h index 7b7b05c4d919..b9c6432ec21b 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParameters200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParameters200Response.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParametersDeepObjectParameter.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParametersDeepObjectParameter.h index 76d6f4edeaea..ce3874ad27d3 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParametersDeepObjectParameter.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParametersDeepObjectParameter.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.cpp b/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.cpp index 63e676e689e9..96ebc0c7a965 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.cpp +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.cpp @@ -1,7 +1,8 @@ + /** - * This file is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ +* This file is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ +#include "TopLevelStatus.h" -#include "TopLevelStatus.h" \ No newline at end of file diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h index 8a7697bc5357..d0670c4fb733 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h @@ -1,59 +1,63 @@ /** - * This file is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ +* This file is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ #pragma once // System headers #include #include -namespace models -{ - enum class TopLevelStatus - { - ACTIVE, - INACTIVE, - PENDING - }; - inline void to_json(nlohmann::json &j, const TopLevelStatus &value) +namespace models { + +enum class TopLevelStatus { + + ACTIVE, + + INACTIVE, + + PENDING + +}; + +inline void to_json(nlohmann::json& j, const TopLevelStatus& value) +{ + switch (value) { - switch (value) - { - case TopLevelStatus::ACTIVE: - j = "active"; - break; - case TopLevelStatus::INACTIVE: - j = "inactive"; - break; - case TopLevelStatus::PENDING: - j = "pending"; - break; - } + + case TopLevelStatus::ACTIVE: j = active; break; + + case TopLevelStatus::INACTIVE: j = inactive; break; + + case TopLevelStatus::PENDING: j = pending; break; + } +} - inline void from_json(const nlohmann::json &j, TopLevelStatus &value) +inline void from_json(const nlohmann::json& j, TopLevelStatus& value) +{ + + if (j == active) + { + value = TopLevelStatus::ACTIVE; + return; + } + + if (j == inactive) + { + value = TopLevelStatus::INACTIVE; + return; + } + + if (j == pending) { - const std::string serializedValue = j.get(); - if (serializedValue == "active") - { - value = TopLevelStatus::ACTIVE; - return; - } - if (serializedValue == "inactive") - { - value = TopLevelStatus::INACTIVE; - return; - } - if (serializedValue == "pending") - { - value = TopLevelStatus::PENDING; - return; - } - throw nlohmann::json::type_error::create(302, "Invalid value for TopLevelStatus", &j); + value = TopLevelStatus::PENDING; + return; } + + throw nlohmann::json::type_error::create(302, "Invalid value for TopLevelStatus", &j); +} -} // namespace models \ No newline at end of file diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/ApiResponse.h b/samples/server/petstore/cpp-httplib-server/petstore/models/ApiResponse.h index 3cb5f3ed9df6..8ba6d49e278c 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/ApiResponse.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/ApiResponse.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/Category.h b/samples/server/petstore/cpp-httplib-server/petstore/models/Category.h index 432674c5607b..2d407a749aec 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/Category.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/Category.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/ComplexParamsResponse.h b/samples/server/petstore/cpp-httplib-server/petstore/models/ComplexParamsResponse.h index eaab72300df9..62e6ef735ce9 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/ComplexParamsResponse.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/ComplexParamsResponse.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObj.h b/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObj.h index 25350d579e94..51fd479648a7 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObj.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObj.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include "DeepObjBaz.h" diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObjBaz.h b/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObjBaz.h index 5220c128694b..b86adda4fc57 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObjBaz.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObjBaz.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/NullableExample.h b/samples/server/petstore/cpp-httplib-server/petstore/models/NullableExample.h index cd532bccb1b8..ca8418e6e24d 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/NullableExample.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/NullableExample.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/Order.h b/samples/server/petstore/cpp-httplib-server/petstore/models/Order.h index 7e7d3aade171..e55ad3538ab8 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/Order.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/Order.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/Pet.h b/samples/server/petstore/cpp-httplib-server/petstore/models/Pet.h index a120edbd44fc..89e390ad0b15 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/Pet.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/Pet.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/PetOrCategory.h b/samples/server/petstore/cpp-httplib-server/petstore/models/PetOrCategory.h index 395dfafc31ba..ba4e40bea764 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/PetOrCategory.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/PetOrCategory.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/Tag.h b/samples/server/petstore/cpp-httplib-server/petstore/models/Tag.h index d8255563cdeb..a81f2cf4d7f5 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/Tag.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/Tag.h @@ -8,6 +8,7 @@ // System headers #include #include +#include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/User.h b/samples/server/petstore/cpp-httplib-server/petstore/models/User.h index ca4e9d5ff0de..6f89a874f232 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/User.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/User.h @@ -7,6 +7,7 @@ #pragma once // System headers #include +#include #include #include #include From ffbc0fa31783b0f4a7a5dcce8fcadd9a13bf1060 Mon Sep 17 00:00:00 2001 From: Stefan Witkowski Date: Fri, 28 Aug 2026 11:59:14 +0200 Subject: [PATCH 4/4] fix(cpp-httplib-server): serialize top-level string enums --- .../codegen/languages/CppHttplibServerCodegen.java | 3 +++ .../resources/cpp-httplib-server/README.mustache | 13 +++++++++++++ .../cpp-httplib-server/model-header.mustache | 5 ++--- .../CppHttplibServerCodegenModelTest.java | 2 ++ .../cpp-httplib-server/feature-test/README.md | 12 ++++++------ .../feature-test/models/Address.h | 1 - .../cpp-httplib-server/feature-test/models/Animal.h | 1 - .../feature-test/models/ArrayTypes.h | 1 - .../feature-test/models/BankAccount.h | 1 - .../feature-test/models/Company.h | 1 - .../feature-test/models/CreatedResponse.h | 1 - .../feature-test/models/CreditCard.h | 1 - .../feature-test/models/Department.h | 1 - .../cpp-httplib-server/feature-test/models/Dog.h | 1 - .../feature-test/models/Employee.h | 1 - .../feature-test/models/EnumTypes.h | 1 - .../feature-test/models/ErrorResponse.h | 1 - .../feature-test/models/NotFoundResponse.h | 1 - .../feature-test/models/NullableOptionalTypes.h | 1 - .../feature-test/models/PaymentMethod.h | 1 - .../feature-test/models/PrimitiveTypes.h | 1 - .../feature-test/models/SimpleObject.h | 1 - .../feature-test/models/StringOrNumber.h | 1 - .../feature-test/models/SuccessResponse.h | 1 - .../models/TestAllParameterTypes200Response.h | 1 - .../models/TestApiKeySecurity200Response.h | 1 - .../models/TestBasicSecurity200Response.h | 1 - .../models/TestBearerSecurity200Response.h | 1 - .../models/TestCookieParameters200Response.h | 1 - .../models/TestHeaderParameters200Response.h | 1 - .../models/TestHeaderParameters401Response.h | 1 - .../models/TestOAuth2Security200Response.h | 1 - .../models/TestQueryParameters200Response.h | 1 - .../models/TestQueryParametersDeepObjectParameter.h | 1 - .../feature-test/models/TopLevelStatus.h | 13 ++++++------- .../petstore/models/ApiResponse.h | 1 - .../cpp-httplib-server/petstore/models/Category.h | 1 - .../petstore/models/ComplexParamsResponse.h | 1 - .../cpp-httplib-server/petstore/models/DeepObj.h | 1 - .../cpp-httplib-server/petstore/models/DeepObjBaz.h | 1 - .../petstore/models/NullableExample.h | 1 - .../cpp-httplib-server/petstore/models/Order.h | 1 - .../cpp-httplib-server/petstore/models/Pet.h | 1 - .../petstore/models/PetOrCategory.h | 1 - .../cpp-httplib-server/petstore/models/Tag.h | 1 - .../cpp-httplib-server/petstore/models/User.h | 1 - 46 files changed, 32 insertions(+), 56 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppHttplibServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppHttplibServerCodegen.java index 207eb2872e9b..a4460cd03c46 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppHttplibServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppHttplibServerCodegen.java @@ -1560,6 +1560,9 @@ public CodegenModel fromModel(String name, Schema schema) { if (model != null) { model.name = toModelName(modelName); model.classname = model.name; + if (model.isEnum) { + model.vendorExtensions.put("isStringEnum", ModelUtils.isStringSchema(schema)); + } if (ModelUtils.hasAllOf(schema) && this.openAPI != null) { int refCount = 0; diff --git a/modules/openapi-generator/src/main/resources/cpp-httplib-server/README.mustache b/modules/openapi-generator/src/main/resources/cpp-httplib-server/README.mustache index 979519ce5c71..a7ab3632f456 100644 --- a/modules/openapi-generator/src/main/resources/cpp-httplib-server/README.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-httplib-server/README.mustache @@ -97,6 +97,18 @@ The server will start on `http://0.0.0.0:8080` with: #### {{vendorExtensions.modelNamespace}}::{{vendorExtensions.modelClassName}} ```cpp +{{#isEnum}} +// Select an enum value +auto model = {{vendorExtensions.modelNamespace}}::{{vendorExtensions.modelClassName}}::{{#allowableValues}}{{#enumVars}}{{#-first}}{{name}}{{/-first}}{{/enumVars}}{{/allowableValues}}; + +// Serialize to JSON via the generated to_json free function +nlohmann::json json = model; +std::string jsonString = json.dump(); + +// Deserialize from JSON via the generated from_json free function +auto parsedModel = nlohmann::json::parse(jsonString).get<{{vendorExtensions.modelNamespace}}::{{vendorExtensions.modelClassName}}>(); +{{/isEnum}} +{{^isEnum}} // Create a model auto model = {{vendorExtensions.modelNamespace}}::{{vendorExtensions.modelClassName}}(); {{#vars}} @@ -109,6 +121,7 @@ std::string jsonString = json.dump(); // Deserialize from JSON auto parsedModel = {{vendorExtensions.modelNamespace}}::{{vendorExtensions.modelClassName}}::fromJson(nlohmann::json::parse(jsonString)); +{{/isEnum}} ``` {{/model}} {{/models}} diff --git a/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache b/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache index 375746e52313..7aa82b2613ab 100644 --- a/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-httplib-server/model-header.mustache @@ -5,7 +5,6 @@ {{#model}} // System headers #include -#include {{#vendorExtensions.filteredImports}} {{{.}}} {{/vendorExtensions.filteredImports}} @@ -29,7 +28,7 @@ inline void to_json(nlohmann::json& j, const {{vendorExtensions.modelClassName}} switch (value) { {{#allowableValues}}{{#enumVars}} - case {{vendorExtensions.modelClassName}}::{{name}}: j = {{#isString}}"{{{value}}}"{{/isString}}{{^isString}}{{value}}{{/isString}}; break; + case {{vendorExtensions.modelClassName}}::{{name}}: j = {{#vendorExtensions.isStringEnum}}"{{{value}}}"{{/vendorExtensions.isStringEnum}}{{^vendorExtensions.isStringEnum}}{{value}}{{/vendorExtensions.isStringEnum}}; break; {{/enumVars}}{{/allowableValues}} } } @@ -37,7 +36,7 @@ inline void to_json(nlohmann::json& j, const {{vendorExtensions.modelClassName}} inline void from_json(const nlohmann::json& j, {{vendorExtensions.modelClassName}}& value) { {{#allowableValues}}{{#enumVars}} - if (j == {{#isString}}"{{{value}}}"{{/isString}}{{^isString}}{{value}}{{/isString}}) + if (j == {{#vendorExtensions.isStringEnum}}"{{{value}}}"{{/vendorExtensions.isStringEnum}}{{^vendorExtensions.isStringEnum}}{{value}}{{/vendorExtensions.isStringEnum}}) { value = {{vendorExtensions.modelClassName}}::{{name}}; return; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java index cdb521a753a1..51d929804a1e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/cpphttplibserver/CppHttplibServerCodegenModelTest.java @@ -281,6 +281,8 @@ public void enumModelTest() { Assert.assertNotNull(model); Assert.assertEquals(model.name, "Status"); Assert.assertTrue(model.isEnum, "top-level enum schemas must remain enum models"); + Assert.assertEquals(model.vendorExtensions.get("isStringEnum"), true, + "string-backed top-level enums must serialize their values as JSON strings"); Assert.assertNotNull(model.allowableValues); Assert.assertEquals(model.allowableValues.get("values"), java.util.Arrays.asList("ACTIVE", "INACTIVE", "PENDING")); diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/README.md b/samples/server/petstore/cpp-httplib-server/feature-test/README.md index b6591f3252ba..82b04b186bbf 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/README.md +++ b/samples/server/petstore/cpp-httplib-server/feature-test/README.md @@ -523,15 +523,15 @@ auto parsedModel = models::TestQueryParametersDeepObjectParameter::fromJson(nloh #### models::TopLevelStatus ```cpp -// Create a model -auto model = models::TopLevelStatus(); +// Select an enum value +auto model = models::TopLevelStatus::ACTIVE; -// Serialize to JSON -nlohmann::json json = models::TopLevelStatus::toJson(model); +// Serialize to JSON via the generated to_json free function +nlohmann::json json = model; std::string jsonString = json.dump(); -// Deserialize from JSON -auto parsedModel = models::TopLevelStatus::fromJson(nlohmann::json::parse(jsonString)); +// Deserialize from JSON via the generated from_json free function +auto parsedModel = nlohmann::json::parse(jsonString).get(); ``` ## Implementing API Handlers diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Address.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Address.h index b717d2a02bce..eaf778a713e4 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Address.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Address.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Animal.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Animal.h index 37b7a93b84c3..e3f179bc7196 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Animal.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Animal.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/ArrayTypes.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/ArrayTypes.h index 88323e405e9b..2f93f30e1416 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/ArrayTypes.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/ArrayTypes.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/BankAccount.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/BankAccount.h index 9e2a10abd336..e5d88115e447 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/BankAccount.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/BankAccount.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Company.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Company.h index 28edd1949363..acb61e0db444 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Company.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Company.h @@ -8,7 +8,6 @@ // System headers #include #include -#include #include #include "Address.h" #include "Department.h" diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/CreatedResponse.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/CreatedResponse.h index aec3a2aa2f4c..b3f94e4cec83 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/CreatedResponse.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/CreatedResponse.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/CreditCard.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/CreditCard.h index 1c38e890da34..f53af49ef132 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/CreditCard.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/CreditCard.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Department.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Department.h index a3ed69779cc0..fa133c2bed92 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Department.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Department.h @@ -8,7 +8,6 @@ // System headers #include #include -#include #include #include "Employee.h" diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Dog.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Dog.h index 505ef3d3d876..fc075c18b8bd 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Dog.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Dog.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/Employee.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/Employee.h index 9df3f9937035..1a7bb642a773 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/Employee.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/Employee.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/EnumTypes.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/EnumTypes.h index 911a1dffb7f4..6ea087bf17e3 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/EnumTypes.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/EnumTypes.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/ErrorResponse.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/ErrorResponse.h index 45afc8e79090..72f143d780e9 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/ErrorResponse.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/ErrorResponse.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/NotFoundResponse.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/NotFoundResponse.h index ec9c422109f8..9b209b5d3f2e 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/NotFoundResponse.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/NotFoundResponse.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/NullableOptionalTypes.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/NullableOptionalTypes.h index 7b39df5194e2..7e5df57ad443 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/NullableOptionalTypes.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/NullableOptionalTypes.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/PaymentMethod.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/PaymentMethod.h index b6a9b3be4d0e..0f5d86c9fae5 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/PaymentMethod.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/PaymentMethod.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include "BankAccount.h" diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/PrimitiveTypes.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/PrimitiveTypes.h index 342d3bf2e543..89894663074b 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/PrimitiveTypes.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/PrimitiveTypes.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/SimpleObject.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/SimpleObject.h index f77ee90b3f55..eae83fbbe860 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/SimpleObject.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/SimpleObject.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/StringOrNumber.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/StringOrNumber.h index ffa37b185ebc..5e6d40483e0e 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/StringOrNumber.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/StringOrNumber.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/SuccessResponse.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/SuccessResponse.h index 7bda20bd017b..a6de84bce543 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/SuccessResponse.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/SuccessResponse.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestAllParameterTypes200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestAllParameterTypes200Response.h index 0b594a8f2e7d..ce9ade6be871 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestAllParameterTypes200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestAllParameterTypes200Response.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestApiKeySecurity200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestApiKeySecurity200Response.h index cc0f028b3b90..f2ebdc38cc2d 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestApiKeySecurity200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestApiKeySecurity200Response.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBasicSecurity200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBasicSecurity200Response.h index 03d276255ce4..c2a923e72215 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBasicSecurity200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBasicSecurity200Response.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBearerSecurity200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBearerSecurity200Response.h index e42970411c6c..0cb7cbe8421d 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBearerSecurity200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestBearerSecurity200Response.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestCookieParameters200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestCookieParameters200Response.h index b0d9e493026e..a5548cc28b0d 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestCookieParameters200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestCookieParameters200Response.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters200Response.h index 83bee433420b..cb091980a63d 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters200Response.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters401Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters401Response.h index f2b693fbe6ab..7b6e0d5ed738 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters401Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestHeaderParameters401Response.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestOAuth2Security200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestOAuth2Security200Response.h index 03197fd1f788..8e232d4866a2 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestOAuth2Security200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestOAuth2Security200Response.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParameters200Response.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParameters200Response.h index b9c6432ec21b..7b7b05c4d919 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParameters200Response.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParameters200Response.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParametersDeepObjectParameter.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParametersDeepObjectParameter.h index ce3874ad27d3..76d6f4edeaea 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParametersDeepObjectParameter.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TestQueryParametersDeepObjectParameter.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h b/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h index d0670c4fb733..c5d9807210a0 100644 --- a/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h +++ b/samples/server/petstore/cpp-httplib-server/feature-test/models/TopLevelStatus.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include @@ -28,11 +27,11 @@ inline void to_json(nlohmann::json& j, const TopLevelStatus& value) switch (value) { - case TopLevelStatus::ACTIVE: j = active; break; + case TopLevelStatus::ACTIVE: j = "active"; break; - case TopLevelStatus::INACTIVE: j = inactive; break; + case TopLevelStatus::INACTIVE: j = "inactive"; break; - case TopLevelStatus::PENDING: j = pending; break; + case TopLevelStatus::PENDING: j = "pending"; break; } } @@ -40,19 +39,19 @@ inline void to_json(nlohmann::json& j, const TopLevelStatus& value) inline void from_json(const nlohmann::json& j, TopLevelStatus& value) { - if (j == active) + if (j == "active") { value = TopLevelStatus::ACTIVE; return; } - if (j == inactive) + if (j == "inactive") { value = TopLevelStatus::INACTIVE; return; } - if (j == pending) + if (j == "pending") { value = TopLevelStatus::PENDING; return; diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/ApiResponse.h b/samples/server/petstore/cpp-httplib-server/petstore/models/ApiResponse.h index 8ba6d49e278c..3cb5f3ed9df6 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/ApiResponse.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/ApiResponse.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/Category.h b/samples/server/petstore/cpp-httplib-server/petstore/models/Category.h index 2d407a749aec..432674c5607b 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/Category.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/Category.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/ComplexParamsResponse.h b/samples/server/petstore/cpp-httplib-server/petstore/models/ComplexParamsResponse.h index 62e6ef735ce9..eaab72300df9 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/ComplexParamsResponse.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/ComplexParamsResponse.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObj.h b/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObj.h index 51fd479648a7..25350d579e94 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObj.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObj.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include "DeepObjBaz.h" diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObjBaz.h b/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObjBaz.h index b86adda4fc57..5220c128694b 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObjBaz.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/DeepObjBaz.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/NullableExample.h b/samples/server/petstore/cpp-httplib-server/petstore/models/NullableExample.h index ca8418e6e24d..cd532bccb1b8 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/NullableExample.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/NullableExample.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/Order.h b/samples/server/petstore/cpp-httplib-server/petstore/models/Order.h index e55ad3538ab8..7e7d3aade171 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/Order.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/Order.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/Pet.h b/samples/server/petstore/cpp-httplib-server/petstore/models/Pet.h index 89e390ad0b15..a120edbd44fc 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/Pet.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/Pet.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/PetOrCategory.h b/samples/server/petstore/cpp-httplib-server/petstore/models/PetOrCategory.h index ba4e40bea764..395dfafc31ba 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/PetOrCategory.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/PetOrCategory.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/Tag.h b/samples/server/petstore/cpp-httplib-server/petstore/models/Tag.h index a81f2cf4d7f5..d8255563cdeb 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/Tag.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/Tag.h @@ -8,7 +8,6 @@ // System headers #include #include -#include diff --git a/samples/server/petstore/cpp-httplib-server/petstore/models/User.h b/samples/server/petstore/cpp-httplib-server/petstore/models/User.h index 6f89a874f232..ca4e9d5ff0de 100644 --- a/samples/server/petstore/cpp-httplib-server/petstore/models/User.h +++ b/samples/server/petstore/cpp-httplib-server/petstore/models/User.h @@ -7,7 +7,6 @@ #pragma once // System headers #include -#include #include #include #include