All Downloads are FREE. Search and download functionalities are using the official Maven repository.

in.specmatic.conversions.OpenApiSpecificationInfo.kt Maven / Gradle / Ivy

Go to download

Turn your contracts into executable specifications. Contract Driven Development - Collaboratively Design & Independently Deploy MicroServices & MicroFrontends. Deprecation Notice for group ID "in.specmatic" ****************************************************************************************************** Updates for "specmatic-core" will no longer be available under the deprecated group ID "in.specmatic". Please update your dependencies to use the new group ID "io.specmatic". ******************************************************************************************************

There is a newer version: 1.3.39
Show newest version
package `in`.specmatic.conversions

import io.swagger.v3.oas.models.OpenAPI

fun openApiSpecificationInfo(openApiFilePath: String, parsedOpenApi: OpenAPI): String {
    val info = StringBuilder()

    info.append("API Specification Summary: $openApiFilePath\n")
    info.append("  OpenAPI Version: ${parsedOpenApi.openapi}\n")

    parsedOpenApi.paths?.let {
        val operationsCount = it.map { (_, pathItem) ->
            pathItem.readOperationsMap().map { (_, operation) -> operation.operationId }
        }.flatten().toList().size
        info.append("  API Paths: ${it.size}, API Operations: $operationsCount\n")
    }

    parsedOpenApi.components?.let {
        info.append("  Schema components: ${it.schemas?.size}, Security Schemes: ${it.securitySchemes?.values?.map { securityScheme -> securityScheme.type.toString() } ?: "none"}\n")
    }

    return info.toString()
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy