如何使用discoveryapis_generator为我的Google Cloud Endpoints API生成Dart客户端库?

时间:2016-09-10 09:48:04

标签: dart google-cloud-endpoints google-oauth2

我有一个端点API,我正在使用discoveryapis_generator生成的Dart客户端库访问。一切都很好,除了生成的库似乎没有反映我的API的身份验证要求。

是否只需要以某种方式创建经过身份验证的http对象,以便传递到以下行中的应用程序BrowserClient()构造函数?

my_api = new MyApi(new BrowserClient());

建议的方法是创建经过身份验证的http对象,以使用here所述的googleapis_auth包吗?我是在正确的轨道上吗?

1 个答案:

答案 0 :(得分:2)

身份验证不是API本身的一部分。实际上,http客户端将发送适当的http标头以进行用户身份验证。假设您使用标准的Google身份验证机制,则可以像使用标准Google API(云端硬盘等)一样使用程序包https://pub.dartlang.org/packages/googleapis_auth

您必须创建一个clientId(谷歌控制台)并使用BrowserOAuth2Flow来获取AuthClient(扩展http.client),然后执行new MyApi(authClient)

我有一个(非常古老的)项目,我覆盖google auth的标准行为,允许在身份验证过程中使用一个简单的示例指定userId(从未真正找到该文档,但它有效),使用PlusApi来获取用户名,但它可以以类似的方式为您自己的api工作。也许这有助于https://github.com/alextekartik/tekartik_googleapis_auth.dart

我认为在调用email

时,您至少需要createImplicitBrowserFlow范围

还有一些使用谷歌api的示例可以提供帮助:https://github.com/dart-lang/googleapis_examples