Files
openapi-generator/samples/server/petstore/cpp-httplib-server/feature-test/models/CreditCard.h
vasireddyrajesh b96334ffad Add standalone C++ server using cpp-httplib for OpenAPI-based APIs (#21724)
Supports:
All OpenAPI 3.x data types: primitives, arrays, enums, nullable/optional fields, nested objects
All parameter types: path, query, header, cookie, and combinations
Schema composition: allOf (inheritance), oneOf (discriminated unions), anyOf (flexible unions)
Security schemes: API key and bearer token authentication
Discriminator-based polymorphic deserialization and error handling

Provides:
Error handling for invalid JSON, type mismatches, missing/unknown discriminator, and parameter validation
Build system integration (CMake) for easy compilation and linking with required dependencies
Clear build and run instructions for local development and testing
Enables comprehensive, real-world validation of generated C++ server code against OpenAPI specifications
2026-02-12 19:41:05 +08:00

69 lines
1.6 KiB
C++

/**
* 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 <nlohmann/json.hpp>
#include <string>
namespace models {
class CreditCard
{
public:
enum class CardTypeEnum {
UNSPECIFIED,
VISA,
MASTERCARD,
AMEX
};
// Enum conversion functions (definitions in .cpp)
static std::string CardTypeEnumToString(CardTypeEnum value);
static CardTypeEnum CardTypeEnumFromString(const std::string& str);
CreditCard();
virtual ~CreditCard() = default;
// Getters and setters
[[nodiscard]] std::string getPaymentType() const;
void setPaymentType(const std::string& paymentType);
[[nodiscard]] std::string getCardNumber() const;
void setCardNumber(const std::string& cardNumber);
[[nodiscard]] CardTypeEnum getCardType() const;
void setCardType(const CardTypeEnum& cardType);
// Serialization helpers for CardTypeEnum
friend inline void to_json(nlohmann::json& j, const CardTypeEnum& e)
{
j = CardTypeEnumToString(e);
}
friend inline void from_json(const nlohmann::json& j, CardTypeEnum& e)
{
e = CardTypeEnumFromString(j.get<std::string>());
}
// JSON serialization using NLOHMANN INTRUSIVE macro (must be inside class to access private members)
NLOHMANN_DEFINE_TYPE_INTRUSIVE(CreditCard,
paymentType, cardNumber, cardType)
private:
std::string paymentType;
std::string cardNumber;
CardTypeEnum cardType;
};
} // namespace models