Skip to content
Joe Betz edited this page Feb 4, 2014 · 7 revisions

Writing Resources in Scala

Rest.li resource classes may be written in Scala. For example:

**
 * A sample scala resource.
 */
@RestLiCollection(name="sampleScala", namespace = "com.example.restli")
class SampleScalaResource extends CollectionResourceTemplate[java.lang.Long, Sample] with PlayRequest {

  /**
   * A sample scala get.
   */
  override def get(key: java.lang.Long): Sample = {
    val message = "hello world"

    new Sample()
      .setMessage(s"You got this from a Scala Resource: ${message}!")
      .setId(key)
  }
}

Scaladoc

Scaladoc is supported via a plugin. This is currently ONLY available for scala 2.10. To enable the plugin in gradle, modify your build.gradle files, adding a dependency on restli-tools-scala and depending on it the module that contains your rest.li resource scala classes.

project.ext.externalDependency = [
  // ...
  'scalaLibrary_2_10': 'org.scala-lang:scala-library:2.10.3'
],
spec = [
  "product" : [
    "pegasus" : [
      // ...
      "restliToolsScala_2_10" : "com.linkedin.pegasus:restli-tools-scala_2.10:"+pegasusVersion
    ]
  ]
]
apply plugin: 'pegasus'
apply plugin: 'scala'

ext.apiProject = ...
dependencies {
  // ...
  compile externalDependency.scalaLibrary_2_10
  compile restliToolsScala_2_10
}

Clone this wiki locally