Google Api Ruby Client返回实际的HTTP响应,而不是helper对象



是否有一种简单的方法可以让google api ruby客户端只向您返回常规HTTP响应,而不是执行可爱的,但稍微有限制的转换为他们的ruby可表示对象之一?

response = Gmail.client.get_user_message("me", id) 
=> #<Google::Apis::GmailV1::Message
response = Gmail.client.list_user_messages("me")    
=> #<Google::Apis::GmailV1::ListMessagesResponse

,

response = Gmail.client.delete_user_message("me", id)
=>nil #successfully deleted

现在一切都很好,除了有时候我只是想知道会得到什么样的回应。也就是说,一个HTTP响应可能一些JSON在身体。然后我再考虑怎么处理它…

我可以接受响应并使用

response.to_json

来获取返回的json的主体(尽管我仍然没有响应代码,并且我需要知道它首先是那些对象之一)。

客户端库肯定得到了,它只是在它让我看到它之前把它转换成这些对象。如果我不知道它是google对象(而不是nil)我就不能一直运行to_json ....

除了猜测一下谷歌会给我发回什么,还有什么想法吗?(我应该注意到,当试图将一个库从0.8 api迁移到0.9 api时,这已经发生了,所以如果你必须称我为愤世嫉俗者,但我相信谷歌不会对这些返回的对象进行突破性的更改,这是在低潮…)

据我所知,可以要求服务器只发送您真正需要的字段,并获得部分响应,而不是像性能提示中提到的默认的完整响应。

但是,我建议您检查您正在使用的特定API的文档,看看您正在寻找的字段当前是否支持。对于Gmail API,您可以通过使用部分资源。

可以使用以下两种类型的部分请求:

  • 部分响应:指定响应中包含哪些字段的请求(使用fields请求参数)。
  • Patch:一个更新请求,你只发送你想改变的字段(使用Patch HTTP动词)。

希望有帮助!

相关内容

  • 没有找到相关文章

最新更新