Skip to content

Commit 4e3743b

Browse files
committed
update swagger ui options adding swagger path prefix
1 parent 05f52c1 commit 4e3743b

File tree

6 files changed

+22
-14
lines changed

6 files changed

+22
-14
lines changed

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ ThisBuild / organization := "app.softnetwork"
3030

3131
name := "generic-persistence-api"
3232

33-
ThisBuild / version := "0.3.2.3"
33+
ThisBuild / version := "0.3.2.4"
3434

3535
ThisBuild / scalaVersion := "2.12.11"
3636

server/src/main/resources/softnetwork-api-server.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ softnetwork{
2525
port = ${?HTTP_SERVER_PORT}
2626

2727
root-path = "api"
28+
29+
swagger-path-prefix = ["docs"]
2830
}
2931
}
3032
}

server/src/main/scala/app/softnetwork/api/server/ApiEndpoint.scala

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import sttp.tapir.swagger.bundle.SwaggerInterpreter
1414
import sttp.tapir.generic.auto._
1515
import sttp.tapir.json.json4s.jsonBody
1616
import sttp.tapir._
17+
import sttp.tapir.swagger.SwaggerUIOptions
1718

1819
import scala.concurrent.{ExecutionContext, Future}
1920
import scala.language.implicitConversions
@@ -22,14 +23,10 @@ trait ApiEndpoint {
2223

2324
import ApiEndpoint._
2425

25-
val applicationName: String = ServerSettings.ApplicationName
26-
27-
val applicationVersion: String = ServerSettings.ApplicationVersion
28-
2926
def endpoints: List[ServerEndpoint[AkkaStreams with WebSockets, Future]]
3027

3128
def swaggerEndpoints: List[ServerEndpoint[AkkaStreams with WebSockets, Future]] =
32-
endpointsToSwaggerEndpoints(endpoints, applicationName, applicationVersion)
29+
endpointsToSwaggerEndpoints(endpoints, swaggerUIOptions)
3330

3431
def swaggerRoute(implicit ec: ExecutionContext): Route = swaggerEndpoints
3532

@@ -80,12 +77,20 @@ trait ApiEndpoint {
8077

8178
object ApiEndpoint {
8279

80+
val applicationName: String = ServerSettings.ApplicationName
81+
82+
val applicationVersion: String = ServerSettings.ApplicationVersion
83+
84+
val swaggerUIOptions: SwaggerUIOptions =
85+
SwaggerUIOptions
86+
.default
87+
.pathPrefix(config.ServerSettings.SwaggerPathPrefix)
88+
8389
def endpointsToSwaggerEndpoints(
8490
endpoints: List[ServerEndpoint[AkkaStreams with WebSockets, Future]],
85-
applicationName: String,
86-
applicationVersion: String
91+
swaggerUIOptions: SwaggerUIOptions
8792
): List[ServerEndpoint[AkkaStreams with WebSockets, Future]] =
88-
SwaggerInterpreter().fromEndpoints[Future](
93+
SwaggerInterpreter(swaggerUIOptions = swaggerUIOptions).fromEndpoints[Future](
8994
endpoints.map(_.endpoint.prependIn(config.ServerSettings.RootPath)),
9095
applicationName,
9196
applicationVersion

server/src/main/scala/app/softnetwork/api/server/ApiEndpoints.scala

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package app.softnetwork.api.server
22

33
import akka.actor.typed.ActorSystem
44
import akka.http.scaladsl.server.Route
5-
import app.softnetwork.api.server.config.ServerSettings
65
import sttp.capabilities.WebSockets
76
import sttp.capabilities.akka.AkkaStreams
87
import sttp.tapir.server.ServerEndpoint
@@ -13,14 +12,12 @@ trait ApiEndpoints extends ApiRoutes {
1312

1413
import ApiEndpoint._
1514

16-
val applicationName: String = ServerSettings.ApplicationName
17-
1815
def endpoints: ActorSystem[_] => List[ServerEndpoint[AkkaStreams with WebSockets, Future]]
1916

2017
override def apiRoutes(system: ActorSystem[_]): Route = {
2118
implicit def ec: ExecutionContext = system.executionContext
2219
val eps = endpoints(system)
23-
eps ++ endpointsToSwaggerEndpoints(eps, applicationName, applicationVersion)
20+
eps ++ endpointsToSwaggerEndpoints(eps, swaggerUIOptions)
2421
}
2522

2623
}

server/src/main/scala/app/softnetwork/api/server/config/ServerSettings.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package app.softnetwork.api.server.config
22

33
import com.typesafe.config.{Config, ConfigFactory}
4+
import scala.collection.JavaConverters._
45

56
object ServerSettings {
67

@@ -11,6 +12,9 @@ object ServerSettings {
1112
val Port: Int = config.getInt("softnetwork.api.server.port")
1213
val RootPath: String = config.getString("softnetwork.api.server.root-path")
1314

15+
val SwaggerPathPrefix: List[String] =
16+
config.getStringList("softnetwork.api.server.swagger-path-prefix").asScala.toList
17+
1418
val ApplicationName: String = config.getString("softnetwork.api.name")
1519
val ApplicationVersion: String = config.getString("softnetwork.api.version")
1620
}

session/common/build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ val akkaHttpSession: Seq[ModuleID] = Seq(
1010
)
1111

1212
libraryDependencies ++= Seq(
13-
"app.softnetwork.protobuf" %% "scalapb-extensions" % "0.1.6"
13+
"app.softnetwork.protobuf" %% "scalapb-extensions" % "0.1.7"
1414
) ++ akkaHttpSession
1515

1616
Compile / unmanagedResourceDirectories += baseDirectory.value / "src/main/protobuf"

0 commit comments

Comments
 (0)