javax.ws.rs.Path Scala Examples
The following examples show how to use javax.ws.rs.Path.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: QueryValidationApi.scala From NSDb with Apache License 2.0 | 5 votes |
package io.radicalbit.nsdb.web.routes import akka.actor.ActorRef import akka.event.LoggingAdapter import akka.http.scaladsl.model.HttpResponse import akka.http.scaladsl.model.StatusCodes._ import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route import akka.pattern.ask import akka.util.Timeout import io.radicalbit.nsdb.common.statement.SelectSQLStatement import io.radicalbit.nsdb.protocol.MessageProtocol.Commands.ValidateStatement import io.radicalbit.nsdb.protocol.MessageProtocol.Events._ import io.radicalbit.nsdb.security.http.NSDBAuthProvider import io.radicalbit.nsdb.security.model.Metric import io.radicalbit.nsdb.sql.parser.SQLStatementParser import io.radicalbit.nsdb.sql.parser.StatementParserResult._ import io.swagger.annotations._ import javax.ws.rs.Path import org.json4s.Formats import scala.annotation.meta.field import scala.util.{Failure, Success} @ApiModel(description = "Query Validation body") case class QueryValidationBody(@(ApiModelProperty @field)(value = "database name ") db: String, @(ApiModelProperty @field)(value = "namespace name ") namespace: String, @(ApiModelProperty @field)(value = "metric name ") metric: String, @(ApiModelProperty @field)(value = "sql query string") queryString: String) extends Metric @Api(value = "/query/validate", produces = "application/json") @Path("/query/validate") trait QueryValidationApi { import io.radicalbit.nsdb.web.NSDbJson._ def readCoordinator: ActorRef def authenticationProvider: NSDBAuthProvider implicit val timeout: Timeout implicit val formats: Formats @ApiOperation(value = "Perform query", nickname = "query", httpMethod = "POST", response = classOf[String]) @ApiImplicitParams( Array( new ApiImplicitParam(name = "body", value = "query definition", required = true, dataTypeClass = classOf[QueryValidationBody], paramType = "body") )) @ApiResponses( Array( new ApiResponse(code = 200, message = "Query is valid"), new ApiResponse(code = 404, message = "Not found item reason"), new ApiResponse(code = 400, message = "statement is invalid") )) def queryValidationApi(implicit logger: LoggingAdapter): Route = { path("query" / "validate") { post { entity(as[QueryValidationBody]) { qb => optionalHeaderValueByName(authenticationProvider.headerName) { header => authenticationProvider.authorizeMetric(ent = qb, header = header, writePermission = false) { new SQLStatementParser().parse(qb.db, qb.namespace, qb.queryString) match { case SqlStatementParserSuccess(_, statement: SelectSQLStatement) => onComplete(readCoordinator ? ValidateStatement(statement)) { case Success(SelectStatementValidated(_)) => complete(HttpResponse(OK)) case Success(SelectStatementValidationFailed(_, reason, MetricNotFound(_))) => complete(HttpResponse(NotFound, entity = reason)) case Success(SelectStatementValidationFailed(_, reason, _)) => complete(HttpResponse(BadRequest, entity = reason)) case Success(r) => logger.error("unknown response received {}", r) complete(HttpResponse(InternalServerError, entity = "unknown response")) case Failure(ex) => logger.error("", ex) complete(HttpResponse(InternalServerError, entity = ex.getMessage)) } case SqlStatementParserSuccess(queryString, _) => complete(HttpResponse(BadRequest, entity = s"statement ${queryString} is not a select statement")) case SqlStatementParserFailure(queryString, _) => complete(HttpResponse(BadRequest, entity = s"statement ${queryString} is invalid")) } } } } } } } }
Example 2
Source File: HealthCheckResource.scala From orders-aws with Apache License 2.0 | 5 votes |
package works.weave.socks.aws.orders.presentation.resource import java.net.URI import java.util.Calendar; import java.util.Date; import javax.ws.rs.GET import javax.ws.rs.Path import javax.ws.rs.core.Response import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import works.weave.socks.aws.orders.presentation.resource.HealthCheckResource._ import works.weave.socks.spring.aws.DynamoConfiguration @Component @Path("health") class HealthCheckResource(dynamoConnection : DynamoConfiguration) { @GET def getHealthCheck() : Response = { Log.info("health check requested") val dateNow = Calendar.getInstance().getTime(); val ordersHealth = Map( "service" -> "orders-aws", "status" -> "OK", "time" -> dateNow) val dynamoDBHealth = scala.collection.mutable.Map( "service" -> "orders-aws-dynamodb", "status" -> "OK", "time" -> dateNow) try { val table = dynamoConnection.client.describeTable("orders") } catch { case unknown : Throwable => dynamoDBHealth("status") = "err" } val map = Map("health" -> Array(ordersHealth, dynamoDBHealth)) Log.info("health check completed") Response.created(new URI("http://tbd")).entity(map).build() } } object HealthCheckResource { val Log = LoggerFactory.getLogger(classOf[HealthCheckResource]) }
Example 3
Source File: EchoEnumService.scala From swagger-akka-http-sample with Apache License 2.0 | 5 votes |
package com.example.akka.echoenum import akka.http.scaladsl.server.{Directives, Route} import com.example.akka.DefaultJsonFormats import com.fasterxml.jackson.core.`type`.TypeReference import com.fasterxml.jackson.module.scala.JsonScalaEnumeration import io.swagger.v3.oas.annotations.Operation import io.swagger.v3.oas.annotations.media.{Content, Schema} import io.swagger.v3.oas.annotations.parameters.RequestBody import io.swagger.v3.oas.annotations.responses.ApiResponse import javax.ws.rs.core.MediaType import javax.ws.rs.{Consumes, POST, Path, Produces} import spray.json.{DeserializationException, JsString, JsValue, RootJsonFormat} @Path("/echoenum") object EchoEnumService extends Directives with DefaultJsonFormats { //case class EchoEnum(@Schema(required = true, `type` = "string", allowableValues = Array("TALL", "GRANDE", "VENTI")) // enumValue: SizeEnum.Value) class SizeEnumTypeClass extends TypeReference[SizeEnum.type] case class EchoEnum(@JsonScalaEnumeration(classOf[SizeEnumTypeClass]) enumValue: SizeEnum.Value) implicit val enumFormat: RootJsonFormat[SizeEnum.Value] = new RootJsonFormat[SizeEnum.Value] { def write(obj: SizeEnum.Value): JsValue = JsString(obj.toString) def read(json: JsValue): SizeEnum.Value = { json match { case JsString(txt) => SizeEnum.withName(txt) case somethingElse => throw DeserializationException(s"Expected a value from enum $SizeEnum instead of $somethingElse") } } } implicit val echoEnumFormat: RootJsonFormat[EchoEnum] = jsonFormat1(EchoEnum) val route: Route = echo @POST @Consumes(Array(MediaType.APPLICATION_JSON)) @Produces(Array(MediaType.APPLICATION_JSON)) @Operation(summary = "Echo Enum", description = "Echo Enum", requestBody = new RequestBody(content = Array(new Content(schema = new Schema(implementation = classOf[EchoEnum])))), responses = Array( new ApiResponse(responseCode = "200", description = "Echo Enum", content = Array(new Content(schema = new Schema(implementation = classOf[EchoEnum])))), new ApiResponse(responseCode = "400", description = "Bad Request")) ) def echo: Route = path("echoenum") { post { entity(as[EchoEnum]) { request => complete(request) } } } }
Example 4
Source File: HelloService.scala From swagger-akka-http-sample with Apache License 2.0 | 5 votes |
package com.example.akka.hello import javax.ws.rs.{GET, Path, Produces} import akka.actor.ActorRef import akka.http.scaladsl.server.{Directives, Route} import akka.pattern.ask import akka.util.Timeout import com.example.akka.DefaultJsonFormats import com.example.akka.hello.HelloActor._ import io.swagger.v3.oas.annotations.enums.ParameterIn import io.swagger.v3.oas.annotations.media.{Content, Schema} import io.swagger.v3.oas.annotations.responses.ApiResponse import io.swagger.v3.oas.annotations.{Operation, Parameter} import javax.ws.rs.core.MediaType import spray.json.RootJsonFormat import scala.concurrent.ExecutionContext import scala.concurrent.duration.DurationInt @Path("/hello") class HelloService(hello: ActorRef)(implicit executionContext: ExecutionContext) extends Directives with DefaultJsonFormats { implicit val timeout: Timeout = Timeout(2.seconds) implicit val greetingFormat: RootJsonFormat[Greeting] = jsonFormat1(Greeting) val route: Route = getHello ~ getHelloSegment @GET @Produces(Array(MediaType.APPLICATION_JSON)) @Operation(summary = "Return Hello greeting (anonymous)", description = "Return Hello greeting for anonymous request", responses = Array( new ApiResponse(responseCode = "200", description = "Hello response", content = Array(new Content(schema = new Schema(implementation = classOf[Greeting])))), new ApiResponse(responseCode = "500", description = "Internal server error")) ) def getHello: Route = path("hello") { get { complete { (hello ? AnonymousHello).mapTo[Greeting] } } } @GET @Produces(Array(MediaType.APPLICATION_JSON)) @Operation(summary = "Return Hello greeting", description = "Return Hello greeting for named user", parameters = Array(new Parameter(name = "name", in = ParameterIn.PATH, description = "user name")), responses = Array( new ApiResponse(responseCode = "200", description = "Hello response", content = Array(new Content(schema = new Schema(implementation = classOf[Greeting])))), new ApiResponse(responseCode = "500", description = "Internal server error")) ) def getHelloSegment: Route = path("hello" / Segment) { name => get { complete { (hello ? Hello(name)).mapTo[Greeting] } } } }
Example 5
Source File: AddOptionService.scala From swagger-akka-http-sample with Apache License 2.0 | 5 votes |
package com.example.akka.addoption import javax.ws.rs.{Consumes, POST, Path, Produces} import akka.actor.ActorRef import akka.http.scaladsl.server.{Directives, Route} import akka.pattern.ask import akka.util.Timeout import com.example.akka.DefaultJsonFormats import com.example.akka.addoption.AddOptionActor._ import io.swagger.v3.oas.annotations.Operation import io.swagger.v3.oas.annotations.media.{Content, Schema} import io.swagger.v3.oas.annotations.parameters.RequestBody import io.swagger.v3.oas.annotations.responses.ApiResponse import javax.ws.rs.core.MediaType import spray.json.RootJsonFormat import scala.concurrent.ExecutionContext import scala.concurrent.duration.DurationInt @Path("/addOption") class AddOptionService(addActor: ActorRef)(implicit executionContext: ExecutionContext) extends Directives with DefaultJsonFormats { implicit val timeout: Timeout = Timeout(2.seconds) implicit val requestFormat: RootJsonFormat[AddOptionRequest] = jsonFormat2(AddOptionRequest) implicit val responseFormat: RootJsonFormat[AddOptionResponse] = jsonFormat1(AddOptionResponse) val route: Route = addOption @POST @Consumes(Array(MediaType.APPLICATION_JSON)) @Produces(Array(MediaType.APPLICATION_JSON)) @Operation(summary = "Add integers", description = "Add integers", requestBody = new RequestBody(content = Array(new Content(schema = new Schema(implementation = classOf[AddOptionRequest])))), responses = Array( new ApiResponse(responseCode = "200", description = "Add response", content = Array(new Content(schema = new Schema(implementation = classOf[AddOptionResponse])))), new ApiResponse(responseCode = "500", description = "Internal server error")) ) def addOption: Route = path("addOption") { post { entity(as[AddOptionRequest]) { request => complete { (addActor ? request).mapTo[AddOptionResponse] } } } } }
Example 6
Source File: EchoEnumeratumService.scala From swagger-akka-http-sample with Apache License 2.0 | 5 votes |
package com.example.akka.echoenumeratum import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport import akka.http.scaladsl.server.{Directives, Route} import io.swagger.v3.oas.annotations.Operation import io.swagger.v3.oas.annotations.media.{Content, Schema} import io.swagger.v3.oas.annotations.parameters.RequestBody import io.swagger.v3.oas.annotations.responses.ApiResponse import javax.ws.rs.core.MediaType import javax.ws.rs.{Consumes, POST, Path, Produces} import pl.iterators.kebs.json.{KebsEnumFormats, KebsSpray} import spray.json.{DefaultJsonProtocol, RootJsonFormat} @Path("/echoenumeratum") object EchoEnumeratumService extends Directives with SprayJsonSupport with DefaultJsonProtocol with KebsSpray with KebsEnumFormats { case class EchoEnumeratum(enumValue: SizeEnum) implicit val echoEnumeratumFormat: RootJsonFormat[EchoEnumeratum] = jsonFormatN[EchoEnumeratum] val route: Route = echo @POST @Consumes(Array(MediaType.APPLICATION_JSON)) @Produces(Array(MediaType.APPLICATION_JSON)) @Operation(summary = "Echo Enumeratum", description = "Echo Enumeratum", requestBody = new RequestBody(content = Array(new Content(schema = new Schema(implementation = classOf[EchoEnumeratum])))), responses = Array( new ApiResponse(responseCode = "200", description = "Echo Enumeratum", content = Array(new Content(schema = new Schema(implementation = classOf[EchoEnumeratum])))), new ApiResponse(responseCode = "400", description = "Bad Request")) ) def echo: Route = path("echoenumeratum") { post { entity(as[EchoEnumeratum]) { request => complete(request) } } } }
Example 7
Source File: AddService.scala From swagger-akka-http-sample with Apache License 2.0 | 5 votes |
package com.example.akka.add import javax.ws.rs.{Consumes, POST, Path, Produces} import akka.actor.ActorRef import akka.http.scaladsl.server.{Directives, Route} import akka.pattern.ask import akka.util.Timeout import com.example.akka.DefaultJsonFormats import com.example.akka.add.AddActor._ import io.swagger.v3.oas.annotations.Operation import io.swagger.v3.oas.annotations.media.{Content, Schema} import io.swagger.v3.oas.annotations.parameters.RequestBody import io.swagger.v3.oas.annotations.responses.ApiResponse import javax.ws.rs.core.MediaType import spray.json.RootJsonFormat import scala.concurrent.ExecutionContext import scala.concurrent.duration.DurationInt @Path("/add") class AddService(addActor: ActorRef)(implicit executionContext: ExecutionContext) extends Directives with DefaultJsonFormats { implicit val timeout: Timeout = Timeout(2.seconds) implicit val requestFormat: RootJsonFormat[AddRequest] = jsonFormat1(AddRequest) implicit val responseFormat: RootJsonFormat[AddResponse] = jsonFormat1(AddResponse) val route: Route = add @POST @Consumes(Array(MediaType.APPLICATION_JSON)) @Produces(Array(MediaType.APPLICATION_JSON)) @Operation(summary = "Add integers", description = "Add integers", requestBody = new RequestBody(content = Array(new Content(schema = new Schema(implementation = classOf[AddRequest])))), responses = Array( new ApiResponse(responseCode = "200", description = "Add response", content = Array(new Content(schema = new Schema(implementation = classOf[AddResponse])))), new ApiResponse(responseCode = "500", description = "Internal server error")) ) def add: Route = path("add") { post { entity(as[AddRequest]) { request => complete { (addActor ? request).mapTo[AddResponse] } } } } }
Example 8
Source File: EchoListService.scala From swagger-akka-http-sample with Apache License 2.0 | 5 votes |
package com.example.akka.echolist import akka.http.scaladsl.server.{Directives, Route} import com.example.akka.DefaultJsonFormats import io.swagger.v3.oas.annotations.Operation import io.swagger.v3.oas.annotations.media.{Content, Schema} import io.swagger.v3.oas.annotations.parameters.RequestBody import io.swagger.v3.oas.annotations.responses.ApiResponse import javax.ws.rs.core.MediaType import javax.ws.rs.{Consumes, POST, Path, Produces} import pl.iterators.kebs.json.KebsSpray import spray.json.RootJsonFormat @Path("/echolist") object EchoListService extends Directives with DefaultJsonFormats with KebsSpray { case class EchoList(listName: String, values: Seq[String]) implicit val echoListFormat: RootJsonFormat[EchoList] = jsonFormatN[EchoList] val route: Route = echo @POST @Consumes(Array(MediaType.APPLICATION_JSON)) @Produces(Array(MediaType.APPLICATION_JSON)) @Operation(summary = "Echo List", description = "Echo List", requestBody = new RequestBody(content = Array(new Content(schema = new Schema(implementation = classOf[EchoList])))), responses = Array( new ApiResponse(responseCode = "200", description = "Echo List", content = Array(new Content(schema = new Schema(implementation = classOf[EchoList])))), new ApiResponse(responseCode = "400", description = "Bad Request")) ) def echo: Route = path("echolist") { post { entity(as[EchoList]) { request => complete(request) } } } }
Example 9
Source File: DataApi.scala From NSDb with Apache License 2.0 | 5 votes |
package io.radicalbit.nsdb.web.routes import javax.ws.rs.Path import akka.actor.ActorRef import akka.pattern.ask import akka.http.scaladsl.model.HttpResponse import akka.http.scaladsl.model.StatusCodes.{BadRequest, InternalServerError} import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route import akka.util.Timeout import io.radicalbit.nsdb.common.protocol.Bit import io.radicalbit.nsdb.protocol.MessageProtocol.Commands.MapInput import io.radicalbit.nsdb.protocol.MessageProtocol.Events.{InputMapped, RecordRejected} import io.radicalbit.nsdb.security.http.NSDBAuthProvider import io.radicalbit.nsdb.security.model.Metric import io.swagger.annotations._ import org.json4s.Formats import scala.annotation.meta.field import scala.util.{Failure, Success} @ApiModel(description = "Data insertion body") case class InsertBody(@(ApiModelProperty @field)(value = "database name") db: String, @(ApiModelProperty @field)(value = "namespace name") namespace: String, @(ApiModelProperty @field)(value = "metric name") metric: String, @(ApiModelProperty @field)( value = "bit representing a single row" ) bit: Bit) extends Metric @Api(value = "/data", produces = "application/json") @Path("/data") trait DataApi { import io.radicalbit.nsdb.web.NSDbJson._ import io.radicalbit.nsdb.web.validation.ValidationDirective._ import io.radicalbit.nsdb.web.validation.Validators._ def writeCoordinator: ActorRef def authenticationProvider: NSDBAuthProvider implicit val timeout: Timeout implicit val formats: Formats @ApiOperation(value = "Insert Bit", nickname = "insert", httpMethod = "POST", response = classOf[String]) @ApiImplicitParams( Array( new ApiImplicitParam(name = "body", value = "bit definition", required = true, dataTypeClass = classOf[InsertBody], paramType = "body") )) @ApiResponses( Array( new ApiResponse(code = 500, message = "Internal server error"), new ApiResponse(code = 400, message = "insert statement is invalid") )) def dataApi: Route = pathPrefix("data") { post { entity(as[InsertBody]) { insertBody => optionalHeaderValueByName(authenticationProvider.headerName) { header => validateModel(insertBody).apply { validatedInsertBody => authenticationProvider.authorizeMetric(ent = validatedInsertBody, header = header, writePermission = true) { onComplete( writeCoordinator ? MapInput(validatedInsertBody.bit.timestamp, validatedInsertBody.db, validatedInsertBody.namespace, validatedInsertBody.metric, validatedInsertBody.bit)) { case Success(_: InputMapped) => complete("OK") case Success(RecordRejected(_, _, _, _, _, reasons, _)) => complete(HttpResponse(BadRequest, entity = reasons.mkString(","))) case Success(_) => complete(HttpResponse(InternalServerError, entity = "unknown response")) case Failure(ex) => complete(HttpResponse(InternalServerError, entity = ex.getMessage)) } } } } } } } }
Example 10
Source File: MatcherApiRouteV1.scala From matcher with MIT License | 5 votes |
package com.wavesplatform.dex.api.http.routes import akka.http.scaladsl.marshalling.ToResponseMarshallable import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.server.directives.FutureDirectives import akka.http.scaladsl.server.{Directive1, Route} import com.wavesplatform.dex.Matcher import com.wavesplatform.dex.api.http.entities.{HttpV1OrderBook, InfoNotFound} import com.wavesplatform.dex.api.http.{HasStatusBarrier, OrderBookHttpInfo} import com.wavesplatform.dex.api.routes.{ApiRoute, AuthRoute, PathMatchers} import com.wavesplatform.dex.domain.asset.AssetPair import com.wavesplatform.dex.domain.utils.ScorexLogging import com.wavesplatform.dex.error.{ErrorFormatterContext, MatcherError} import com.wavesplatform.dex.model.{AssetPairBuilder, MatcherModel} import io.swagger.annotations.{Api, ApiImplicitParam, ApiImplicitParams, ApiOperation} import javax.ws.rs.Path @Path("/api/v1") @Api(value = "/api v1/") case class MatcherApiRouteV1(assetPairBuilder: AssetPairBuilder, orderBookHttpInfo: OrderBookHttpInfo, matcherStatus: () => Matcher.Status, apiKeyHash: Option[Array[Byte]])(implicit val errorContext: ErrorFormatterContext) extends ApiRoute with AuthRoute with HasStatusBarrier with ScorexLogging { import PathMatchers._ override lazy val route: Route = pathPrefix("api" / "v1") { matcherStatusBarrier { getOrderBook } } private def withAssetPair(p: AssetPair, redirectToInverse: Boolean, suffix: String = "", formatError: MatcherError => ToResponseMarshallable = InfoNotFound.apply): Directive1[AssetPair] = { FutureDirectives.onSuccess { assetPairBuilder.validateAssetPair(p).value } flatMap { case Right(_) => provide(p) case Left(e) if redirectToInverse => FutureDirectives.onSuccess { assetPairBuilder.validateAssetPair(p.reverse).value } flatMap { case Right(_) => redirect(s"/api/v1/${p.priceAssetStr}/${p.amountAssetStr}$suffix", StatusCodes.MovedPermanently) case Left(_) => complete(formatError(e)) } case Left(e) => complete { formatError(e) } } } @Path("/orderbook/{amountAsset}/{priceAsset}") @ApiOperation( value = "Get Order Book for a given Asset Pair", notes = "Get Order Book for a given Asset Pair", httpMethod = "GET", response = classOf[HttpV1OrderBook] ) @ApiImplicitParams( Array( new ApiImplicitParam(name = "amountAsset", value = "Amount Asset Id in Pair, or 'WAVES'", dataType = "string", paramType = "path"), new ApiImplicitParam(name = "priceAsset", value = "Price Asset Id in Pair, or 'WAVES'", dataType = "string", paramType = "path"), new ApiImplicitParam(name = "depth", value = "Limit the number of bid/ask records returned", required = false, dataType = "integer", paramType = "query") ) ) def getOrderBook: Route = (path("orderbook" / AssetPairPM) & get) { p => parameters('depth.as[Int].?) { depth => withAssetPair(p, redirectToInverse = true) { pair => complete { orderBookHttpInfo.getHttpView(pair, MatcherModel.Denormalized, depth) } } } } }
Example 11
Source File: ApiStreamingApp.scala From Spark-2.3.1 with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1.streaming import javax.ws.rs.{Path, PathParam} import org.apache.spark.status.api.v1._ import org.apache.spark.streaming.ui.StreamingJobProgressListener @Path("/v1") private[v1] class ApiStreamingApp extends ApiRequestContext { @Path("applications/{appId}/streaming") def getStreamingRoot(@PathParam("appId") appId: String): Class[ApiStreamingRootResource] = { classOf[ApiStreamingRootResource] } @Path("applications/{appId}/{attemptId}/streaming") def getStreamingRoot( @PathParam("appId") appId: String, @PathParam("attemptId") attemptId: String): Class[ApiStreamingRootResource] = { classOf[ApiStreamingRootResource] } } private[v1] trait BaseStreamingAppResource extends BaseAppResource { protected def withListener[T](fn: StreamingJobProgressListener => T): T = withUI { ui => val listener = ui.getStreamingJobProgressListener match { case Some(listener) => listener.asInstanceOf[StreamingJobProgressListener] case None => throw new NotFoundException("no streaming listener attached to " + ui.getAppName) } listener.synchronized { fn(listener) } } }
Example 12
Source File: InfoServiceHttpService.scala From sparta with Apache License 2.0 | 5 votes |
package com.stratio.sparta.serving.api.service.http import javax.ws.rs.Path import com.stratio.sparta.serving.api.constants.HttpConstant import com.stratio.sparta.serving.core.exception.ServingCoreException import com.stratio.sparta.serving.core.helpers.InfoHelper import com.stratio.sparta.serving.core.models.ErrorModel import com.stratio.sparta.serving.core.models.dto.LoggedUser import com.stratio.sparta.serving.core.models.info.AppInfo import com.wordnik.swagger.annotations._ import spray.routing._ import scala.util.Try @Api(value = HttpConstant.AppInfoPath, description = "Operations about information of server") trait InfoServiceHttpService extends BaseHttpService { override def routes(user: Option[LoggedUser] = None): Route = getInfo @Path("") @ApiOperation(value = "Return the server info", notes = "Return the server info", httpMethod = "GET") @ApiResponses(Array(new ApiResponse(code = 200, message = "Return the server info", response = classOf[AppInfo]))) def getInfo: Route = { path(HttpConstant.AppInfoPath) { get { complete { Try(InfoHelper.getAppInfo).getOrElse( throw new ServingCoreException(ErrorModel.toString( new ErrorModel(ErrorModel.CodeUnknown, s"Imposible to extract server information") )) ) } } } } }
Example 13
Source File: ConfigHttpService.scala From sparta with Apache License 2.0 | 5 votes |
package com.stratio.sparta.serving.api.service.http import javax.ws.rs.Path import akka.pattern.ask import com.stratio.sparta.serving.api.actor.ConfigActor._ import com.stratio.sparta.serving.api.constants.HttpConstant import com.stratio.sparta.serving.core.models.SpartaSerializer import com.stratio.sparta.serving.core.models.dto.LoggedUser import com.wordnik.swagger.annotations.{Api, ApiOperation, ApiResponse, ApiResponses} import spray.routing.Route @Api(value = HttpConstant.ConfigPath, description = "Operations on Sparta Configuration") trait ConfigHttpService extends BaseHttpService with SpartaSerializer { override def routes(user: Option[LoggedUser] = None): Route = getAll(user) @Path("") @ApiOperation(value = "Retrieve all frontend configuration settings", notes = "Returns configuration value for frontend", httpMethod = "GET") @ApiResponses( Array(new ApiResponse(code = HttpConstant.NotFound, message = HttpConstant.NotFoundMessage))) def getAll(user: Option[LoggedUser]): Route = { path(HttpConstant.ConfigPath) { get { complete { for { response <- (supervisor ? FindAll).mapTo[ConfigResponse] } yield response match { case ConfigResponse(config) => config } } } } } }
Example 14
Source File: ExecutorNumResource.scala From XSQL with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import javax.ws.rs.{GET, Path, Produces} import javax.ws.rs.core.MediaType import scala.collection.JavaConverters._ import org.apache.spark.monitor.{ExecutorNum, ExecutorNumWrapper} @Path("/v1") @Produces(Array(MediaType.APPLICATION_JSON)) class ExecutorNumResource extends BaseAppResource { @GET @Path("applications/{appId}/executorNumCurve") def executorNumCurve1(): Seq[ExecutorNum] = withUI(_.store.store.view(classOf[ExecutorNumWrapper]).asScala.map(_.point).toSeq) @GET @Path("applications/{appId}/{attemptId}/executorNumCurve") def executorNumCurve2(): Seq[ExecutorNum] = withUI(_.store.store.view(classOf[ExecutorNumWrapper]).asScala.map(_.point).toSeq) }
Example 15
Source File: AppServer.scala From keycloak-benchmark with Apache License 2.0 | 5 votes |
package org.jboss.perf import java.net.InetSocketAddress import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.LongAdder import javax.ws.rs.core.Response import javax.ws.rs.{GET, POST, Path} import com.sun.net.httpserver.HttpServer import org.jboss.resteasy.plugins.server.sun.http.HttpContextBuilder import org.keycloak.constants.AdapterConstants object AppServer { private val address: Array[String] = Options.app.split(":") private val httpServer = HttpServer.create(new InetSocketAddress(address(0), address(1).toInt), 100) private val contextBuilder = new HttpContextBuilder() contextBuilder.getDeployment().getActualResourceClasses().add(classOf[AppServer]) private val context = contextBuilder.bind(httpServer) private val logouts = new LongAdder(); private val versions = new LongAdder(); private val pushNotBefores = new LongAdder(); private val queryBearerTokens = new LongAdder(); private val testAvailables = new LongAdder(); def main(args: Array[String]): Unit = { httpServer.start() val timeout = Options.rampUp + Options.duration + Options.rampDown + 10; Thread.sleep(TimeUnit.SECONDS.toMillis(timeout)) httpServer.stop(0); printf("AppServer stats:%n%8d logout%n%8d version%n%8d pushNotBefore%n%8d queryBearerToken%n%8d testAvailables%n", logouts.longValue(), versions.longValue(), pushNotBefores.longValue(), queryBearerTokens.longValue(), testAvailables.longValue()) } } @Path("/admin") class AppServer { @GET @POST @Path(AdapterConstants.K_LOGOUT) def logout(): Response = { AppServer.logouts.increment() Response.ok().build() } @GET @POST @Path(AdapterConstants.K_VERSION) def version(): Response = { AppServer.versions.increment() Response.ok().build() } @GET @POST @Path(AdapterConstants.K_PUSH_NOT_BEFORE) def pushNotBefore(): Response = { AppServer.pushNotBefores.increment() Response.ok().build() } @GET @POST @Path(AdapterConstants.K_QUERY_BEARER_TOKEN) def queryBearerToken(): Response = { AppServer.queryBearerTokens.increment() Response.ok().build() } @GET @POST @Path(AdapterConstants.K_TEST_AVAILABLE) def testAvailable(): Response = { AppServer.testAvailables.increment() Response.ok().build() } }
Example 16
Source File: Status.scala From daf-semantics with Apache License 2.0 | 5 votes |
package it.almawave.kb.http.endpoints import java.time.LocalTime import io.swagger.annotations.Api import javax.ws.rs.Path import javax.ws.rs.GET import javax.ws.rs.Produces import io.swagger.annotations.ApiOperation import javax.ws.rs.core.MediaType import org.slf4j.LoggerFactory import javax.ws.rs.core.Context import javax.ws.rs.core.UriInfo import javax.ws.rs.core.Request import it.almawave.linkeddata.kb.utils.JSONHelper import java.time.LocalDateTime import java.time.ZonedDateTime import java.time.format.DateTimeFormatter import java.util.Locale import java.time.ZoneId @Api(tags = Array("catalog")) @Path("/status") class Status { private val logger = LoggerFactory.getLogger(this.getClass) @Context var uriInfo: UriInfo = null @GET @Produces(Array(MediaType.APPLICATION_JSON)) @ApiOperation(nickname = "status", value = "endpoint status") def status() = { val base_uri = uriInfo.getBaseUri val msg = s"the service is running at ${base_uri}" logger.info(msg) val _now = now() StatusMsg(_now._1, _now._2, msg) } def now() = { val zdt = ZonedDateTime.now(ZoneId.of("+1")) val dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ") (zdt.format(dtf), zdt) } } case class StatusMsg( now: String, dateTime: ZonedDateTime, msg: String )
Example 17
Source File: CatalogStandardizationService.scala From daf-semantics with Apache License 2.0 | 5 votes |
package it.almawave.kb.http.endpoints import javax.inject.Singleton import javax.ws.rs.Path import org.slf4j.LoggerFactory import it.almawave.kb.http.models.OntologyMetaModel import com.typesafe.config.ConfigFactory import java.nio.file.Paths import it.almawave.linkeddata.kb.catalog.CatalogBox import it.almawave.linkeddata.kb.utils.JSONHelper import it.almawave.daf.standardization.refactoring.CatalogStandardizer @Singleton @Path("conf://api-catalog-config") class CatalogStandardizationService { private val logger = LoggerFactory.getLogger(this.getClass) val conf = ConfigFactory.parseFile(Paths.get("./conf/catalog.conf").normalize().toFile()) val catalog = new CatalogBox(conf) catalog.start() val _standardizer = CatalogStandardizer(catalog) _standardizer.start def stardardizer = _standardizer // TODO: STOP? }