README

JSON-RPC 2.0 Codec

Usage

Import the codec and set within the client/server

package main

import (
    "github.com/micro/go-micro/v2"
    "github.com/micro/go-micro/client"
    "github.com/micro/go-micro/server"
    "github.com/micro/go-plugins/codec/jsonrpc2"
)

func main() {
    client := client.NewClient(
        client.Codec("application/json", jsonrpc2.NewCodec),
        client.ContentType("application/json"),
    )

    server := server.NewServer(
        server.Codec("application/json", jsonrpc2.NewCodec),
    )

    service := micro.NewService(
        micro.Client(client),
        micro.Server(server),
    )

    // ...
}
Expand ▾ Collapse ▴

Documentation

Overview

    Package jsonrpc2 provides a json-rpc 2.0 codec

    Based on powerman/rpc-codec: The MIT License (MIT) Copyright (c) 2015 Alex Efros

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func NewCodec

    func NewCodec(rwc io.ReadWriteCloser) codec.Codec

    Types

    type Error

    type Error struct {
    	Code    int         `json:"code"`
    	Message string      `json:"message"`
    	Data    interface{} `json:"data,omitempty"`
    }

      Error represent JSON-RPC 2.0 "Error object".

      func NewError

      func NewError(code int, message string) *Error

        NewError returns an Error with given code and message.

        func ServerError

        func ServerError(rpcerr error) *Error

          ServerError convert errors returned by Client.Call() into Error. User should check for rpc.ErrShutdown and io.ErrUnexpectedEOF before calling ServerError.

          func (*Error) Error

          func (e *Error) Error() string

            Error returns JSON representation of Error.