公共接口

未匹配的标注

公共接口

M3O 通过开放 http/json API 提供你的服务.

可以用以下方式查询和访问你的服务.

URL

公共接口在此 url 中可用 https://api.m3o.com.

认证

我们大部分的核心服务都已锁定, 因此你需要使用 API 令牌来访问它们.

# 获取你的用户令牌
MICRO_API_TOKEN=`micro user token`

# 通过 curl 访问 api
curl -H "Authorization: Bearer $MICRO_API_TOKEN" https://api.m3o.com/

应该可以看到如下输出

{"version": "v3.0.0-beta"}

[生成 API 令牌](/docs/go-micro/3.x/public-apis#生成 API 令牌)

此部分即将推出, 目前你可以使用自己的用户令牌.

请求映射

由于所有服务都是基于 RPC 的, 因此 HTTP 请求必须动态映射到服务及其终结点. 我们可以非常简单的完成这些, 如下所示.

# 通过 Helloworld.Call 终结点调用 helloworld 服务
https://api.m3o.com/helloworld/call

# 通过 Greeting.Message 终结点调用 hellworld 服务
https://api.m3o.com/helloworld/greeting/message

如你所见如果终结点与服务名称匹配, 我们可以折叠路径, 以便没有冗余. 此外我们还映射了与 网站的 index.html 之类的的 Call 终结点, 以便使用

https://api.m3o.com/helloworld

跟访问 web 一样样简单

设置命名空间

由于你的服务在特定的命名空间中, 因此您必须设置请求头 Micro-Namespace 才能通过我们的公共 api api.m3o.com 访问它们. 另外你还可以通过每个命名空间的自定义 URL, 后文中有相关内容.

获取你的命名空间

NAMESPACE=`micro user namespace`

然后只需在你的调用中设置请求头

curl -H "Micro-Namespace: $NAMESPACE" https://api.m3o.com/helloworld

这将路由到你的 helloworld 服务, 而不是别人的!

自定义URLs

每个用户都会获得一个自定义 URL, 其命名空间是 https://[namespace].m3o.app

然后每个服务都是基于路径的, 例如 https://[namespace].m3o.app/[service]

举个例子, 若要路由到 foobar 命名空间中的 helloworld 服务, 你只需这样做

curl https://foobar.m3o.app/helloworld

授权

你的命名空间由你自己的一组规则管理, 您可以很快在授权指南中阅读这些规则, 或者只需前往身份验证教程.


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

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


暂无话题~