forked from loafle/openapi-generator-original
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
46 lines
868 B
C++
46 lines
868 B
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 <cstdint>
|
|
#include <string>
|
|
|
|
|
|
// Project headers
|
|
#include "Animal.h"
|
|
|
|
namespace models {
|
|
|
|
|
|
class Dog : public Animal
|
|
{
|
|
public:
|
|
|
|
Dog();
|
|
virtual ~Dog() = default;
|
|
|
|
// Getters and setters
|
|
[[nodiscard]] std::string getBreed() const;
|
|
void setBreed(const std::string& breed);
|
|
[[nodiscard]] int getBarkVolume() const;
|
|
void setBarkVolume(const int& barkVolume);
|
|
|
|
|
|
// JSON serialization using NLOHMANN INTRUSIVE macro (must be inside class to access private members)
|
|
NLOHMANN_DEFINE_TYPE_INTRUSIVE(Dog,
|
|
breed, barkVolume)
|
|
|
|
private:
|
|
std::string breed;
|
|
int barkVolume;
|
|
};
|
|
|
|
|
|
} // namespace models
|
|
|