aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/app/DriverApp.scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@driver.xyz>2018-01-22 14:28:13 -0800
committerJakob Odersky <jakob@driver.xyz>2018-01-22 15:01:01 -0800
commitb9a1319214e8efdfe2af737236e7ce6d45f08fc2 (patch)
tree206e055f14291e09a65f794b675d82a67eb5fee5 /src/main/scala/xyz/driver/core/app/DriverApp.scala
parent199446c2f878992be2a21a00a9263b6330738151 (diff)
downloaddriver-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.scala36
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._