是否有一种简单的方法可以让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动词)。
希望有帮助!