in.specmatic.conversions.OpenApiSpecificationInfo.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of specmatic-core Show documentation
Show all versions of specmatic-core Show documentation
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".
******************************************************************************************************
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()
}