mirror of
https://github.com/go-micro/go-micro.git
synced 2025-04-23 11:07:43 +02:00
58 lines
1.9 KiB
Markdown
58 lines
1.9 KiB
Markdown
|
# API
|
||
|
|
||
|
This repo contains examples for using the micro api.
|
||
|
|
||
|
## Overview
|
||
|
|
||
|
The [micro api](https://github.com/micro/micro/tree/master/api) is an API gateway which serves HTTP and routes dynamically based on service discovery.
|
||
|
|
||
|
The micro api by default serves the namespace go.micro.api. Our service names include this plus a unique name e.g go.micro.api.example.
|
||
|
You can change the namespace via the flag `--namespace=`.
|
||
|
|
||
|
The micro api has a number of different handlers which lets you define what kind of API services you want. See examples below. The handler
|
||
|
can be set via the flag `--handler=`. The default handler is "rpc".
|
||
|
|
||
|
## Contents
|
||
|
|
||
|
- api - an rpc handler that provides the entire http headers and request
|
||
|
- proxy - use the api as a http reverse proxy
|
||
|
- rpc - make an rpc request to a go-micro app
|
||
|
- meta - specify which handler to use via configuration in code
|
||
|
|
||
|
## Request Mapping
|
||
|
|
||
|
### API/RPC
|
||
|
|
||
|
Micro maps http paths to rpc services. The mapping table can be seen below.
|
||
|
|
||
|
The default namespace for the api is **go.micro.api** but you can set your own namespace via `--namespace`.
|
||
|
|
||
|
URLs are mapped as follows:
|
||
|
|
||
|
Path | Service | Method
|
||
|
---- | ---- | ----
|
||
|
/foo/bar | go.micro.api.foo | Foo.Bar
|
||
|
/foo/bar/baz | go.micro.api.foo | Bar.Baz
|
||
|
/foo/bar/baz/cat | go.micro.api.foo.bar | Baz.Cat
|
||
|
|
||
|
Versioned API URLs can easily be mapped to service names:
|
||
|
|
||
|
Path | Service | Method
|
||
|
---- | ---- | ----
|
||
|
/foo/bar | go.micro.api.foo | Foo.Bar
|
||
|
/v1/foo/bar | go.micro.api.v1.foo | Foo.Bar
|
||
|
/v1/foo/bar/baz | go.micro.api.v1.foo | Bar.Baz
|
||
|
/v2/foo/bar | go.micro.api.v2.foo | Foo.Bar
|
||
|
/v2/foo/bar/baz | go.micro.api.v2.foo | Bar.Baz
|
||
|
|
||
|
### Proxy Mapping
|
||
|
|
||
|
Starting the API with `--handler=http` will reverse proxy requests to backend services within the served API namespace (default: go.micro.api).
|
||
|
|
||
|
Example
|
||
|
|
||
|
Path | Service | Service Path
|
||
|
--- | --- | ---
|
||
|
/greeter | go.micro.api.greeter | /greeter
|
||
|
/greeter/:name | go.micro.api.greeter | /greeter/:name
|