oatpp / oatpp-swagger

OpenApi 3.0.0 docs + Swagger UI for oatpp services
https://oatpp.io/
Apache License 2.0
91 stars 51 forks source link

Multiple example values #36

Closed lganzzzo closed 3 years ago

lganzzzo commented 3 years ago

Summary

Add example-values feature for RequestBody, Response, and Parameters (Path, Headers, Queries)

Add Consumes Examples

ENDPOINT_INFO(myEndpoint) {

  info->addConsumes<Object<MyDto>>("application/json")
    .addExample("example_1", MyDto::createShared(... /* params here */ ))
    .addExample("example_2", MyDto::createShared(... /* params here */ ))
    .addExample("example_3", MyDto::createShared(... /* params here */ ));

}

Add Response Examples

ENDPOINT_INFO(myEndpoint) {

  info->addResponse<Object<MyDto>>(Status::CODE_200, "application/json")
    .addExample("Successful Response_1", MyDto::createShared(... /* params */ ));

  info->addResponse<Object<ErrorDto>>(Status::CODE_404, "application/json")
    .addExample("Error - Not found", ErrorDto::createShared(404, "Not Found"));

  info->addResponse<Object<ErrorDto>>(Status::CODE_500, "application/json")
    .addExample("Error - DB Connection", ErrorDto::createShared(500, "Can't connect to DB"))
    .addExample("Error - Unknown", ErrorDto::createShared(500, "Unknown Error"));

}

Add Parameter Examples

ENDPOINT_INFO(myEndpoint) {

  info->pathParams["userRole"]
    .addExample("Admin", oatpp::Enum<UserRole>(UserRole::ADMIN))
    .addExample("Guest", oatpp::Enum<UserRole>(UserRole::GUEST));

}