La idea es crear un proyecto spring boot, con scala y sbt. (ya lo dice el titulo)
Primero hacemos un proyecto hello word con sbt (ojo tienen que tener sbt instalado, esta bueno instalarlo con sdkman)
sbt new scala/hello-world.g8
Luego, tenemos que agregar nuestra dependencia web de spring boot en build.sbt :
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web
libraryDependencies += "org.springframework.boot" % "spring-boot-starter-web" % "2.6.7"
libraryDependencies += "org.springframework.boot" % "spring-boot-configuration-processor" % "2.6.7"
Ojo, tienen que tener el main en un paquete sino no anda.
Por ultimo hacemos nuestro endpoint, en este ejemplo voy a hacer un hola mundo, comun. Pero en este punto podemos utilizar todas las ventajas de spring boot :
package com.assembly.endpoint
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.{PathVariable, RequestMapping, RequestMethod, RestController}
@RestController
@RequestMapping(Array("/v1"))
class GreeterEndPoint {
@RequestMapping(value=Array("/hello/{name}"), method = Array(RequestMethod.GET))
def sayHello(@PathVariable(name = "name") name:String): ResponseEntity[String] =
ResponseEntity.ok(s"Hello ${name}")
}
Lo puse en otro paquete, esto solo para que quede más ordenado, y listo!!!