tree: f9ae5c60c6fd3c731d98e6ba5f7af5924bd7ffa2 [path history] [tgz]
  1. go-client/
  2. go-server/
  3. README.md
  4. README_zh.md
general/rest/README.md

Dubbo-Go Restful Usage

1. Introduction

Develop restful application in dubbo-go.

2. How to configure

provider side

# server.yml

# service config
services:
  "UserProvider":
    registry: "demoZk"
    # using rest protocl
    protocol : "rest"
    interface : "org.apache.dubbo.UserProvider"
    loadbalance: "random"
    warmup: "100"
    cluster: "failover"
    # the http path
    rest_path: "/UserProvider"
    methods:
      - name: "GetUser"
        # the http path
        rest_path: "/GetUser"
        # the http method
        rest_method: "GET"
        # the query param 'id' mapping to the first parameter in this method
        rest_query_params: "0:id"
      - name: "GetUser0"
        rest_path: "/GetUser0/{id}"
        rest_method: "POST"
        # the path param 'name' mapping to the second parameter in this method,
        # and the path param 'age' mapping to the third parameter.
        rest_query_params: "1:name,2:age"
        # the path param 'id' mapping to the first parameter in this method
        rest_path_params: "0:id"
        rest_produces: "application/json"
        rest_consumes: "application/json;charset=utf-8,*/*"
      - name: "GetUser3"
        rest_path: "/GetUser3"
        rest_method: "GET"
      - name: "GetUsers"
        rest_path: "/GetUsers"
        rest_method: "POST"
        rest_body: 0
      - name: "GetUser1"
        rest_path: "/GetUser1"
        rest_method: "GET"

protocols:
  "rest":
    name: "rest"
    ip: "0.0.0.0"
    port: 8888

consumer side

# client.yml

# reference config
references:
  "UserProvider":
    registry: "demoZk"
    protocol : "rest"
    interface : "org.apache.dubbo.UserProvider"
    cluster: "failover"
    rest_path: "/UserProvider"
    methods:
      - name: "GetUser"
        rest_path: "/GetUser"
        rest_method: "GET"
        rest_query_params: "0:id"
      - name: "GetUser0"
        rest_path: "/GetUser0/{id}"
        rest_method: "POST"
        rest_query_params: "1:name,2:age"
        rest_path_params: "0:id"
      - name: "GetUser3"
        rest_path: "/GetUser3"
        rest_method: "GET"
      - name: "GetUsers"
        rest_path: "/GetUsers"
        rest_method: "POST"
        rest_body: 0
      - name: "GetUser1"
        rest_path: "/GetUser1"
        rest_method: "GET"