blob: 67684c390cb532a43664a8fb55dfaf9deb442436 [file] [log] [blame] [view]
## Dubbo-Go Restful Usage
### 1. Introduction
Develop restful application in dubbo-go.
### 2. How to configure
provider side
```yaml
# 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
```yaml
# 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"
```