一夫当关万夫莫开之 Micro API Gateway
夜渐渐黑了, 又到了探索新姿势的时候…
小白拉着 Micro 又开始了不可描述的故事.
Micro 轻声细语诉说着关于 API Gateway 小姐姐的喜好, 以便小白以后下手. 晴时笑语闻空虚
API Gateway, 顾名思义就是 API 网关, 通常有着承上启下的作用, 或者说承前启后更合适.
不过我觉得用 “一夫当关万夫莫开” 来形容网关再合适不过了.
CLI
Micro 提供了对 API Gateway 的命令行接口支持.
我们先来看看帮助命令:
micro help api
不出意外的话, 会输出如下内容:
NAME:
micro api - Run the api gateway
USAGE:
micro api [command options] [arguments...]
OPTIONS:
--address value Set the api address e.g 0.0.0.0:8080 [%MICRO_API_ADDRESS%]
--handler value Specify the request handler to be used for mapping HTTP requests to services; {api, event, http, rpc} [%MICRO_API_HANDLER%]
--namespace value Set the namespace used by the API e.g. com.example.api [%MICRO_API_NAMESPACE%]
--resolver value Set the hostname resolver used by the API {host, path, grpc} [%MICRO_API_RESOLVER%]
--enable_rpc Enable call the backend directly via /rpc (default: false) [%MICRO_API_ENABLE_RPC%]
--enable_cors Enable CORS, allowing the API to be called by frontend applications (default: true) [%MICRO_API_ENABLE_CORS%]
看着有点小乱, 直接盘她.
输入以下命令试试先:
micro api
不出意外的话, 会输出如下内容:
micro api
2020-03-24 14:47:04 level=info service=api Registering API Default Handler at /
2020-03-24 14:47:04 level=info service=api HTTP API Listening on [::]:8080
2020-03-24 14:47:04 level=info service=api Starting [service] go.micro.api
2020-03-24 14:47:04 level=info service=api Server [grpc] Listening on [::]:41531
2020-03-24 14:47:04 level=info service=api Registry [mdns] Registering node: go.micro.api-49c65de0-8543-4976-bc8b-107e13723a7b
通过输出信息可以看出
- 添加了对路径
/
的默认处理器, 一会我们可以访问下试试; - 监听了
8080
端口, 一会我们访问就用这个端口; - 启动了一个叫
go.micro.api
的 service, 一会我们可以查看下服务列表; - 服务同时提供了 grpc 的服务器, 端口是
41531
- 当然一如既往的把这些告诉了 [mdns] 小姐姐
现在我们访问下试试
curl http://localhost:8080
当然你也可以直接在浏览器里访问.
不出意外的话, 会输出如下内容:
{"version": "latest"}
或者访问具体某个服务
curl -H 'content-type:application/json' \
-d '{
"service": "micro.srv.user",
"method": "User.Profile",
"request": {
"userId": 2
}
}' http://localhost:8080/rpc
再来查看下服务:
micro list services
不出意外的话, 应该会输出如下内容
go.micro.api
“新姿势一如既往的容易操作和理解” 小白沾沾自喜地心想…
Micro 仿佛看懂了小白再想什么, 幽幽回了一句: “等你真正深入后就慢慢懂了”.