From b9a1319214e8efdfe2af737236e7ce6d45f08fc2 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Mon, 22 Jan 2018 14:28:13 -0800 Subject: Include swagger UI in core These changes centralize the location of the swagger UI web files. The git attributes instruct GitHub to treat the web files as vendored code, as to not be included in the project code statistics. See https://github.com/github/linguist for a more detailed explanation. --- src/main/scala/xyz/driver/core/app/DriverApp.scala | 36 +--------------------- 1 file changed, 1 insertion(+), 35 deletions(-) (limited to 'src/main/scala/xyz/driver/core/app') diff --git a/src/main/scala/xyz/driver/core/app/DriverApp.scala b/src/main/scala/xyz/driver/core/app/DriverApp.scala index 6ba9949..3bd9c41 100644 --- a/src/main/scala/xyz/driver/core/app/DriverApp.scala +++ b/src/main/scala/xyz/driver/core/app/DriverApp.scala @@ -10,11 +10,9 @@ import akka.http.scaladsl.server.RouteResult._ import akka.http.scaladsl.server._ import akka.http.scaladsl.{Http, HttpExt} import akka.stream.ActorMaterializer -import com.github.swagger.akka.SwaggerHttpService._ import com.typesafe.config.Config import com.typesafe.scalalogging.Logger import io.swagger.models.Scheme -import io.swagger.util.Json import org.slf4j.{LoggerFactory, MDC} import xyz.driver.core import xyz.driver.core.rest._ @@ -26,9 +24,7 @@ import xyz.driver.tracing._ import scala.concurrent.duration._ import scala.concurrent.{Await, ExecutionContext} -import scala.reflect.runtime.universe._ import scala.util.Try -import scala.util.control.NonFatal import scalaz.Scalaz.stringInstance import scalaz.syntax.equal._ @@ -73,7 +69,7 @@ class DriverApp( def appRoute: Route = { val serviceTypes = modules.flatMap(_.routeTypes) - val swaggerService = swaggerOverride(serviceTypes) + val swaggerService = new Swagger(baseUrl, Scheme.forValue(scheme) :: Nil, version, serviceTypes, config, log) val swaggerRoute = swaggerService.routes ~ swaggerService.swaggerUI val versionRt = versionRoute(version, gitHash, time.currentTime()) val basicRoutes = new DriverRoute { @@ -125,36 +121,6 @@ class DriverApp( MDC.put("userAgent", extractHeader(request)("user-agent").getOrElse("unknown")) } - protected def swaggerOverride(apiTypes: Seq[Type]): Swagger = { - new Swagger(baseUrl, Scheme.forValue(scheme), version, actorSystem, apiTypes, config) { - override def generateSwaggerJson: String = { - import io.swagger.models.Swagger - - import scala.collection.JavaConverters._ - - try { - val swagger: Swagger = reader.read(toJavaTypeSet(apiTypes).asJava) - - // Removing trailing spaces - swagger.setPaths( - swagger.getPaths.asScala - .map { - case (key, path) => - key.trim -> path - } - .toMap - .asJava) - - Json.pretty().writeValueAsString(swagger) - } catch { - case NonFatal(t) => - logger.error("Issue with creating swagger.json", t) - throw t - } - } - } - } - protected def versionRoute(version: String, gitHash: String, startupTime: Time): Route = { import spray.json._ import DefaultJsonProtocol._ -- cgit v1.2.3