diff options
author | Jakob Odersky <jakob@driver.xyz> | 2018-01-22 14:28:13 -0800 |
---|---|---|
committer | Jakob Odersky <jakob@driver.xyz> | 2018-01-22 15:01:01 -0800 |
commit | b9a1319214e8efdfe2af737236e7ce6d45f08fc2 (patch) | |
tree | 206e055f14291e09a65f794b675d82a67eb5fee5 /src/main/scala/xyz/driver/core/app/DriverApp.scala | |
parent | 199446c2f878992be2a21a00a9263b6330738151 (diff) | |
download | driver-core-b9a1319214e8efdfe2af737236e7ce6d45f08fc2.tar.gz driver-core-b9a1319214e8efdfe2af737236e7ce6d45f08fc2.tar.bz2 driver-core-b9a1319214e8efdfe2af737236e7ce6d45f08fc2.zip |
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.
Diffstat (limited to 'src/main/scala/xyz/driver/core/app/DriverApp.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/app/DriverApp.scala | 36 |
1 files changed, 1 insertions, 35 deletions
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._ |