1package dev.rafex.ether.http.openapi.builder;
29import java.util.ArrayList;
30import java.util.LinkedHashMap;
33import java.util.Objects;
35import dev.rafex.ether.http.openapi.model.OpenApiComponents;
36import dev.rafex.ether.http.openapi.model.OpenApiDocument;
37import dev.rafex.ether.http.openapi.model.OpenApiInfo;
38import dev.rafex.ether.http.openapi.model.OpenApiOperation;
39import dev.rafex.ether.http.openapi.model.OpenApiPathItem;
40import dev.rafex.ether.http.openapi.model.OpenApiResponse;
41import dev.rafex.ether.http.openapi.model.OpenApiSchema;
42import dev.rafex.ether.http.openapi.model.OpenApiServer;
46 private String openapi =
"3.1.0";
47 private OpenApiInfo info =
new OpenApiInfo(
"ether-api",
"0.0.0",
null,
null,
null);
48 private final List<OpenApiServer> servers =
new ArrayList<>();
49 private final Map<String, OpenApiPathItem> paths =
new LinkedHashMap<>();
50 private final Map<String, OpenApiSchema> schemas =
new LinkedHashMap<>();
51 private final Map<String, OpenApiResponse> responses =
new LinkedHashMap<>();
58 this.openapi = Objects.requireNonNull(openapi,
"openapi");
63 this.info = Objects.requireNonNull(info,
"info");
68 servers.add(Objects.requireNonNull(server,
"server"));
73 schemas.put(Objects.requireNonNull(name,
"name"), Objects.requireNonNull(schema,
"schema"));
78 responses.put(Objects.requireNonNull(name,
"name"), Objects.requireNonNull(response,
"response"));
83 final OpenApiOperation operation) {
84 Objects.requireNonNull(path,
"path");
85 Objects.requireNonNull(method,
"method");
86 Objects.requireNonNull(operation,
"operation");
88 (k, current) -> (current ==
null ? OpenApiPathItem.empty() : current).withOperation(method, operation));
92 public OpenApiDocument
build() {
93 return new OpenApiDocument(openapi, info, servers, paths,
new OpenApiComponents(schemas, responses));
OpenApiDocumentBuilder addSchema(final String name, final OpenApiSchema schema)
OpenApiDocumentBuilder openapi(final String openapi)
OpenApiDocumentBuilder addOperation(final String path, final String method, final OpenApiOperation operation)
OpenApiDocumentBuilder addResponse(final String name, final OpenApiResponse response)
OpenApiDocumentBuilder addServer(final OpenApiServer server)
static OpenApiDocumentBuilder create()
OpenApiDocumentBuilder info(final OpenApiInfo info)