Go 武林外傳 - 一夫當關萬夫莫開之 Micro API Gateway

taadis發表於2020-03-30

夜漸漸黑了, 又到了探索新姿勢的時候…

小白拉著 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"}

再來檢視下服務:

micro list services

不出意外的話, 應該會輸出如下內容

go.micro.api

“新姿勢一如既往的容易操作和理解” 小白沾沾自喜地心想…

Micro 彷彿看懂了小白再想什麼, 幽幽回了一句: “等你真正深入後就慢慢懂了”.

本作品採用《CC 協議》,轉載必須註明作者和本文連結

覺得還不錯點個讚唄!

相關文章