62 lines
1.2 KiB
Markdown
Raw Permalink Normal View History

2017-01-01 18:39:05 +00:00
# HTTP Client
This plugin is a http client for go-micro.
2018-11-23 14:25:46 +00:00
## Overview
The http client wraps `net/http` to provide a robust go-micro client with service discovery, load balancing and streaming.
2017-01-01 18:43:29 +00:00
It complies with the [go-micro.Client](https://godoc.org/github.com/micro/go-micro/client#Client) interface.
2017-01-01 18:39:05 +00:00
## Usage
### Use directly
```go
import "github.com/micro/go-plugins/client/http"
service := micro.NewService(
micro.Name("my.service"),
micro.Client(http.NewClient()),
)
```
### Use with flags
```go
import _ "github.com/micro/go-plugins/client/http"
```
```shell
go run main.go --client=http
```
### Call Service
Assuming you have a http service "my.service" with path "/foo/bar"
```go
// new client
client := http.NewClient()
// create request/response
2017-01-01 19:33:24 +00:00
request := client.NewRequest("my.service", "/foo/bar", protoRequest{})
2017-01-01 19:33:44 +00:00
response := new(protoResponse)
2017-01-01 18:39:05 +00:00
// call service
err := client.Call(context.TODO(), request, response)
```
2017-01-01 18:41:07 +00:00
2017-01-01 19:21:21 +00:00
Look at http_test.go for detailed use.
2017-01-01 19:20:53 +00:00
### Encoding
Default protobuf with content-type application/proto
```go
client.NewRequest("service", "/path", protoRequest{})
```
Json with content-type application/json
```go
client.NewJsonRequest("service", "/path", jsonRequest{})
```