【问题标题】:How batch api for gmail can be used for listing gmail?gmail的批处理api如何用于列出gmail?
【发布时间】:2020-01-13 22:10:44
【问题描述】:

想要批量请求列表,可以将每条消息的发件人和标题连同它一起带入 gmail api。我怎样才能对它提出批量请求?是否可以使用邮递员发出批量请求?

作为批处理请求的一部分,如何请求批处理请求?

如何对上述需求端点使用批处理请求?

As part of batch request as per google doc ,
POST /batch/farm/v1 HTTP/1.1
Authorization: Bearer your_auth_token
Host: www.googleapis.com
Content-Type: multipart/mixed; boundary=batch_foobarbaz
Content-Length: total_content_length

--batch_foobarbaz
Content-Type: application/http
Content-ID: <item1:12930812@barnyard.example.com>

GET /farm/v1/animals/pony

--batch_foobarbaz
Content-Type: application/http
Content-ID: <item2:12930812@barnyard.example.com>

PUT /farm/v1/animals/sheep
Content-Type: application/json
Content-Length: part_content_length
If-Match: "etag/sheep"

{
  "animalName": "sheep",
  "animalAge": "5"
  "peltColor": "green",
}

--batch_foobarbaz
Content-Type: application/http
Content-ID: <item3:12930812@barnyard.example.com>

GET /farm/v1/animals
If-None-Match: "etag/animals"

--batch_foobarbaz--

根据我的要求,我不知道如何修改文档请求?

【问题讨论】:

  • 请向我们展示您到目前为止所做的尝试。是的,您可能可以在邮递员中执行此操作,但它会很困难,因为您可以发送多达 100 个请求,并且您必须手动输入批处理请求的正文。我个人会使用服务器端编程语言。
  • @DalmTo 问题已修改
  • @DalmTo 根据文档,它包含后端点中的农场。它用于什么目的?
  • 阅读文档页面了吗?不要只是复制代码阅读它。您需要更改请求以指向您要发出的实际请求。 /farm/v1/animals/pony 不是对 Gmail 的 api 调用..
  • @DalmTo 我已经读过了。我说的是批量发布端点 POST /batch/farm/v1 HTTP/1.1。如果是gmail doc,那怎么来farm?

标签: google-api gmail-api batch-request


【解决方案1】:

如何进行批量请求?

通过使用批处理端点Batching

是否可以使用邮递员进行批量请求?

是的,邮递员可以处理这个电话。但是您将不得不手动创建考虑到可以包含 100 个请求的主体,这将非常耗时并且容易出错 IMO。

作为批处理请求的一部分,如何请求批处理请求?

通过发送 HTTP Post,其中正文包含您为其请求数据的每个单个请求。

如何对上述需求端点使用批处理请求?

您可以使用 postman 或任何其他可以处理 http post 调用的编程语言来完成。

正文中的每一行 GET /farm/v1/animals 都包含您希望向 api 发出的请求,在您的情况下,它类似于 users/me/messages/1

您需要调用 users messages.list 首先获取您想要获取信息的所有消息 ID 的列表。然后将您的批处理请求构建到 user.messages 以获取和请求每条消息。批处理并不意味着您不需要为每个消息批处理发送一个 get 请求,只是为您节省了发送每个 get 请求所进行的额外 http 调用。

POST /batch/gmail/v1 HTTP/1.1
Authorization: Bearer your_auth_token
Host: www.googleapis.com
Content-Type: multipart/mixed; boundary=batch_foobarbaz
Content-Length: total_content_length
Accept-Encoding: application/gzip

--batch_foobarbaz
Content-Type: application/http


GET gmail/v1/users/me/messages/16d24956228a98c4
Accept: application/json; charset=UTF-8

--batch_foobarbaz
Content-Type: application/http


GET gmail/v1/users/me/messages/16d24956228a98c4
Accept: application/json; charset=UTF-8

--batch_foobarbaz--

【讨论】:

  • @DalmTo 我已经尝试了上述请求。它给出了错误 400 错误请求。
  • 您可能没有正确设置标题或者您的网址错误。
  • 还是 400,RequestBody: --batch_foobarbaz Content-Type: application/http GET googleapis.com/gmail/v1/users/me/messages/16d243eebef48c9a Accept: application/json; --batch_foobarbaz Content-Type: application/http GET googleapis.com/gmail/v1/users/me/messages/16d242d21af1a2ef Accept: application/json; --batch_foobarbaz--
  • @DalmTo 回复:--batch_vLy1GSRjmBo_AAQUpNtQKSE Content-Type: application/http HTTP/1.1 400 Bad Request Content-Type: application/json; charset=UTF-8 Date: Thu, 12 Sep 2019 09:30:21 GMT { "error": { "errors": [ { "domain": "global", "reason": "endpointConstraintMismatch", "message": "The request did not match the specified API.", "locationType": "other", "location": "path" } ], "code": 400, "message": "The request did not match the specified API." } } --batch_vLy1GSRjmBo_AAQUpNtQKSE--
  • 工作解决方案在这里 stackoverflow.com/questions/35343365/…
猜你喜欢
  • 2018-08-13
  • 1970-01-01
  • 2021-08-11
  • 2023-03-18
  • 2015-12-08
  • 1970-01-01
  • 2019-05-28
  • 1970-01-01
  • 2020-02-24
相关资源
最近更新 更多