REST :: Client vs LWP :: UserAgent用于访问Google API的Perl类?

时间:2016-07-08 16:31:02

标签: perl rest

对于Google API,我们应该使用REST::Client  或其基类LWP::UserAgent

我认为没有特别的理由使用REST::Client,但是这个类是出于某种目的而创建的。那是什么目的?

2 个答案:

答案 0 :(得分:1)

REST :: Client主要是LWP :: UserAgent的包装器。它添加了一些方法,以便更轻松地访问REST所需的功能(即DELETE,PUT,PATCH等方法,XML解析)。如果您不需要其中任何一个,您可以直接使用LWP :: UserAgent。

答案 1 :(得分:1)

不幸的是,CPAN受到声称支持Google API服务的模块的污染。我经常感到沮丧的是,我不得不为每个服务使用不同的模块,并且通常在找到每个模块之前先尝试一些。一旦您熟悉OAUTH2舞蹈并管理令牌,就可以使用一系列模块来执行较低级别的查询,以直接访问API端点。值得搜索Swagger / OpenAPI资源,因为我希望这是Ninja可能使用的资源,因为您可以使用诸如OpenAPI::Client之类的Swagger / OpenAPI yaml或json配置动态配置客户端。 但是,除了简单的OAUTH2客户端获得对端点的访问权限(如果您搜索“ perl” +“ Google api” +“ OAUTH2” +“ Client” +“ example'”,还有很多示例),这些服务通常足够复杂,需要一些不错的功能来操纵有效载荷。 在撰写本文时,我实际上正在尝试清理实施较差的粗糙代码库,您可以通过安装来安装

see https://pscott-au.github.io/WebService-Google-Client/

这与CPAN版本不符。附带的一个方便使用的便捷工具是一个命令行小工具goauth,该工具运行一个微型Weberver来帮助您生成令牌等。在示例文件夹中,您可以看到如何使用此工具通过Gmail发送电子邮件API服务是我最初的动机。

我们承诺将对此进行持续开发(一旦我认为它适合一般用途,便有可能移入cpan。如果我不能与WebService-Google-Client作者保持一致,则可能会在其他命名空间下发布。

如果您对特定的用例感兴趣,或者只想通过Perl使用Google API服务,请联系我们。