Go to file
dependabot[bot] f974460ff3
Bump github.com/unistack-org/micro/v3 from 3.7.0 to 3.7.1 (#28)
Bumps [github.com/unistack-org/micro/v3](https://github.com/unistack-org/micro) from 3.7.0 to 3.7.1.
- [Release notes](https://github.com/unistack-org/micro/releases)
- [Commits](https://github.com/unistack-org/micro/compare/v3.7.0...v3.7.1)

---
updated-dependencies:
- dependency-name: github.com/unistack-org/micro/v3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2021-09-17 08:27:55 +03:00
.github fixup workflow 2021-09-17 08:22:44 +03:00
.golangci.yml lint fixes (#25) 2021-04-25 16:26:36 +03:00
.synced use own fork 2021-01-10 14:48:10 +03:00
go.mod Bump github.com/unistack-org/micro/v3 from 3.7.0 to 3.7.1 (#28) 2021-09-17 08:27:55 +03:00
go.sum Bump github.com/unistack-org/micro/v3 from 3.7.0 to 3.7.1 (#28) 2021-09-17 08:27:55 +03:00
http_test.go fix parsing of url query with all methods 2021-09-01 02:06:01 +03:00
http.go fix for url query params in url 2021-09-01 02:25:29 +03:00
LICENSE use own fork 2021-01-10 14:48:10 +03:00
message.go lint fixes (#25) 2021-04-25 16:26:36 +03:00
options.go support metadata option 2021-07-09 11:00:19 +03:00
README.md use own fork 2021-01-10 14:48:10 +03:00
request.go allow to set content type with charset 2021-04-10 12:46:34 +03:00
stream.go rework newRequest 2021-07-09 16:27:49 +03:00
util_test.go fix path template parsing 2021-07-30 23:02:50 +03:00
util.go fix parsing of url query with all methods 2021-09-01 02:06:01 +03:00

HTTP Client

This plugin is a http client for micro.

Overview

The http client wraps net/http to provide a robust micro client with service discovery, load balancing and streaming. It complies with the micro.Client interface.

Usage

Use directly

import "github.com/unistack-org/micro-client-http"

service := micro.NewService(
	micro.Name("my.service"),
	micro.Client(http.NewClient()),
)

Call Service

Assuming you have a http service "my.service" with path "/foo/bar"

// new client
client := http.NewClient()

// create request/response
request := client.NewRequest("my.service", "/foo/bar", protoRequest{})
response := new(protoResponse)

// call service
err := client.Call(context.TODO(), request, response)

or you can call any rest api or site and unmarshal to response struct

// new client
client := client.NewClientCallOptions(http.NewClient(), http.Address("https://api.github.com"))

req := client.NewRequest("github", "/users/vtolstov", nil)
rsp := make(map[string]interface{})

err := c.Call(context.TODO(), req, &rsp, mhttp.Method(http.MethodGet)) 

Look at http_test.go for detailed use.

Encoding

Default protobuf with content-type application/proto

client.NewRequest("service", "/path", protoRequest{})

Json with content-type application/json

client.NewJsonRequest("service", "/path", jsonRequest{})