package com.allaboutscala.learn.akka.http.routes import akka.http.scaladsl.model.{ContentTypes, HttpEntity} import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route import com.allaboutscala.learn.akka.http.jsonsupport.{JsonSupport, AkkaHttpRestServer} /** * Created by Nadim Bahadoor on 28/06/2016. * * Tutorial: Learn How To Use Akka HTTP * * [[http://allaboutscala.com/scala-frameworks/akka/]] * * Copyright 2016 Nadim Bahadoor (http://allaboutscala.com) * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * [http://www.apache.org/licenses/LICENSE-2.0] * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ class ServerVersion extends JsonSupport { def route(): Route = { path("server-version") { get { val serverVersion = "1.0.0.0" complete(HttpEntity(ContentTypes.`text/plain(UTF-8)`, serverVersion)) } } } def routeAsJson(): Route = { path("server-version-json") { get { val jsonResponse = """ |{ | "app": "Akka HTTP REST Server", | "version": "1.0.0.0" |} """.stripMargin complete(HttpEntity(ContentTypes.`application/json`, jsonResponse)) } } } def routeAsJsonEncoding(): Route = { path("server-version-json-encoding") { get { val server = AkkaHttpRestServer("Akka HTTP REST Server", "1.0.0.0") complete(server) } } } }