一夫当关万夫莫开之 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 仿佛看懂了小白再想什么, 幽幽回了一句: “等你真正深入后就慢慢懂了”.

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
taadis
讨论数量: 0
发起讨论 只看当前版本


暂无话题~