Packages

  • package root
    Definition Classes
    root
  • package little
    Definition Classes
    root
  • package json
    Definition Classes
    little
  • package rpc

    Defines API for JSON-RPC 2.0.

    Defines API for JSON-RPC 2.0.

    import javax.json.JsonValue
    
    import little.json.{ Json, JsonAdapter }
    import little.json.Implicits._
    import little.json.rpc._
    
    case class Params(values: Int*)
    
    // Define adapter for converting params to and from JSON
    implicit object ParamsAdapter extends JsonAdapter[Params] {
      def reading(json: JsonValue): Params =
        Params(json.as[Seq[Int]] : _*)
    
      def writing(params: Params): JsonValue =
        Json.toJson(params.values)
    }
    
    // Create request with builder
    val request = JsonRpcRequest.builder()
      .version("2.0")
      .id("590d24ae-500a-486c-8d73-8035e78529bd")
      .method("sum")
      .params(Params(1, 2, 3))
      .build()
    
    // Initialize response builder
    val responseBuilder = JsonRpcResponse.builder()
      .version(request.version)
      .id(request.id)
    
    request.method match {
      case "sum" =>
        val params = request.params.get.as[Params]
    
        // Set result
        responseBuilder.result(params.values.sum)
      case name =>
        // Or set error
        responseBuilder.error(MethodNotFound(name))
    }
    
    // Create response with builder
    val response = responseBuilder.build()
    Definition Classes
    json
  • InternalError
  • InvalidParams
  • InvalidRequest
  • JsonRpc
  • JsonRpcError
  • JsonRpcIdentifier
  • JsonRpcMessage
  • JsonRpcRequest
  • JsonRpcResponse
  • MethodNotFound
  • ParseError

package rpc

Defines API for JSON-RPC 2.0.

import javax.json.JsonValue

import little.json.{ Json, JsonAdapter }
import little.json.Implicits._
import little.json.rpc._

case class Params(values: Int*)

// Define adapter for converting params to and from JSON
implicit object ParamsAdapter extends JsonAdapter[Params] {
  def reading(json: JsonValue): Params =
    Params(json.as[Seq[Int]] : _*)

  def writing(params: Params): JsonValue =
    Json.toJson(params.values)
}

// Create request with builder
val request = JsonRpcRequest.builder()
  .version("2.0")
  .id("590d24ae-500a-486c-8d73-8035e78529bd")
  .method("sum")
  .params(Params(1, 2, 3))
  .build()

// Initialize response builder
val responseBuilder = JsonRpcResponse.builder()
  .version(request.version)
  .id(request.id)

request.method match {
  case "sum" =>
    val params = request.params.get.as[Params]

    // Set result
    responseBuilder.result(params.values.sum)
  case name =>
    // Or set error
    responseBuilder.error(MethodNotFound(name))
}

// Create response with builder
val response = responseBuilder.build()
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. rpc
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final class InternalError extends JsonRpcError

    Represents JSON-RPC internal error (code = -32603).

  2. final class InvalidParams extends JsonRpcError

    Represents JSON-RPC invalid params (code = -32602).

  3. final class InvalidRequest extends JsonRpcError

    Represents JSON-RPC invalid request (code = -32600).

  4. sealed class JsonRpcError extends RuntimeException

    Represents JSON-RPC error.

  5. sealed trait JsonRpcIdentifier extends AnyRef

    Stores optional identifier.

  6. sealed trait JsonRpcMessage extends AnyRef

    Represents JSON-RPC message.

  7. sealed trait JsonRpcRequest extends JsonRpcMessage

    Represents JSON-RPC request.

  8. sealed trait JsonRpcResponse extends JsonRpcMessage

    Represents JSON-RPC request.

  9. final class MethodNotFound extends JsonRpcError

    Represents JSON-RPC method not found (code = -32601).

  10. final class ParseError extends JsonRpcError

    Represents JSON-RPC parse error (code = -32700).

Value Members

  1. implicit val jsonRpcErrorAdapter: JsonAdapter[JsonRpcError]

    Defines adapter for JsonRpcError.

  2. implicit val jsonRpcIdentifierAdapter: JsonAdapter[JsonRpcIdentifier]

    Defines adapter for JsonRpcIdentifier.

  3. implicit val jsonRpcRequestAdapter: JsonAdapter[JsonRpcRequest]

    Defines adapter for JsonRpcRequest.

  4. implicit val jsonRpcResponseAdapter: JsonAdapter[JsonRpcResponse]

    Defines adapter for JsonRpcResponse.

  5. object InternalError extends Serializable

    Provides factory for InternalError.

  6. object InvalidParams extends Serializable

    Provides factory for InvalidParams.

  7. object InvalidRequest extends Serializable

    Provides factory for InvalidRequest.

  8. object JsonRpc

    Provides utilities for parsing JSON-RPC messages.

  9. object JsonRpcError extends Serializable

    Provides factory for JsonRpcError.

  10. object JsonRpcIdentifier

    Provides factory for JsonRpcIdentifier.

  11. object JsonRpcRequest

    Provides factory for JsonRpcRequest.

  12. object JsonRpcResponse

    Provides factory for JsonRpcResponse.

  13. object MethodNotFound extends Serializable

    Provides factory for MethodNotFound.

  14. object ParseError extends Serializable

    Provides factory for ParseError.

Inherited from AnyRef

Inherited from Any

Ungrouped