Title: DISCUSSION: Allow http as an argument to Connection so libraries other than httplib2 can be used · Issue #551 · googleapis/google-cloud-python · GitHub
Open Graph Title: DISCUSSION: Allow http as an argument to Connection so libraries other than httplib2 can be used · Issue #551 · googleapis/google-cloud-python
X Title: DISCUSSION: Allow http as an argument to Connection so libraries other than httplib2 can be used · Issue #551 · googleapis/google-cloud-python
Description: This way we can support people using Twisted (for example) or other frameworks without having to write any other code. Though docs could be nice? We could supply an abstract class for them to subclass? As of 12ac983: $ git log -1 --prett...
Open Graph Description: This way we can support people using Twisted (for example) or other frameworks without having to write any other code. Though docs could be nice? We could supply an abstract class for them to subcl...
X Description: This way we can support people using Twisted (for example) or other frameworks without having to write any other code. Though docs could be nice? We could supply an abstract class for them to subcl...
Opengraph URL: https://github.com/googleapis/google-cloud-python/issues/551
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"DISCUSSION: Allow http as an argument to Connection so libraries other than httplib2 can be used","articleBody":"This way we can support people using `Twisted` (for example) or other frameworks without having to write any other code. Though docs could be nice? We could supply an abstract class for them to subclass?\n\n---\n\nAs of 12ac983fe613785c998aeeb1d8b981f4b5b347d9:\n\n```\n$ git log -1 --pretty=%H\n12ac983fe613785c998aeeb1d8b981f4b5b347d9\n$ git grep '\\.http' -- gcloud/ | egrep -v 'test'\ngcloud/datastore/connection.py: :raises: :class:`six.moves.http_client.HTTPException` if the response\ngcloud/datastore/connection.py: headers, content = self.http.request(\ngcloud/datastore/connection.py: raise six.moves.http_client.HTTPException(message)\ngcloud/storage/connection.py: return self.http.request(uri=url, method=method, headers=headers,\ngcloud/storage/key.py: download.InitializeDownload(request, self.connection.http)\ngcloud/storage/key.py: upload.InitializeUpload(request, conn.http)\ngcloud/storage/key.py: http_wrapper.MakeRequest(conn.http, request, retries=num_retries)\n```\n\nWe only actively use the `httplib2.Http()` instance twice. Once in `storage.connection.Connection.make_request`:\n\n``` python\n return self.http.request(uri=url, method=method, headers=headers,\n body=data)\n```\n\nand once in `datastore.connection.Connection._request`:\n\n``` python\n headers, content = self.http.request(\n uri=self.build_api_url(dataset_id=dataset_id, method=method),\n method='POST', headers=headers, body=data)\n```\n\n---\n\nIn either case the object only needs to be able to accept\n- `uri`\n- `method`\n- `headers`\n- `body`\n\nand needs to [append](https://github.com/google/oauth2client/blob/2864ebc7a52832f0fda3820d6aeb8723c0d09597/oauth2client/client.py#L584-L590) a\n\n```\nAuthorization: Bearer ya29.some-OAUTH-TOKEN...\n```\n\nheader to `headers`. (See the [source](https://github.com/google/oauth2client/blob/2864ebc7a52832f0fda3820d6aeb8723c0d09597/oauth2client/client.py#L525-L556), the user agent is also updated and the request is retried if a [401 Unauthorized](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error) is encountered, but an external client need not do either of those.)\n\n---\n\nASIDE: Should we add an auth label?\n","author":{"url":"https://github.com/dhermes","@type":"Person","name":"dhermes"},"datePublished":"2015-01-15T07:27:55.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/551/google-cloud-python/issues/551"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:ab267f24-c942-67a7-ea07-7d7848084604 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B5AC:2C6DF7:B7DB67:FCE9C7:6A4DE46B |
| html-safe-nonce | 6340604102adfc2fea65f481e0f6db789c10d6c0e89a2bd86e5c11cc14b2e2df |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNUFDOjJDNkRGNzpCN0RCNjc6RkNFOUM3OjZBNERFNDZCIiwidmlzaXRvcl9pZCI6Ijg1NzM0ODA1MDQyMjQ1NzQ1MSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 880a8cbf63c528af8b305c4879fee0ef4f52a34302d8eb3fd034741cd8fecfa5 |
| hovercard-subject-tag | issue:54420070 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/googleapis/google-cloud-python/551/issue_layout |
| twitter:image | https://opengraph.githubassets.com/8d7e2332de0caa56cce16b06d6e0731ed5224ae820dca09a8e4558be55196c70/googleapis/google-cloud-python/issues/551 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/8d7e2332de0caa56cce16b06d6e0731ed5224ae820dca09a8e4558be55196c70/googleapis/google-cloud-python/issues/551 |
| og:image:alt | This way we can support people using Twisted (for example) or other frameworks without having to write any other code. Though docs could be nice? We could supply an abstract class for them to subcl... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | dhermes |
| hostname | github.com |
| expected-hostname | github.com |
| None | 06b8a6144231bf3a234f1c2e9993861e07ce98a905912b114aa386c2d7e84b33 |
| turbo-cache-control | no-preview |
| go-import | github.com/googleapis/google-cloud-python git https://github.com/googleapis/google-cloud-python.git |
| octolytics-dimension-user_id | 16785467 |
| octolytics-dimension-user_login | googleapis |
| octolytics-dimension-repository_id | 16316451 |
| octolytics-dimension-repository_nwo | googleapis/google-cloud-python |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 16316451 |
| octolytics-dimension-repository_network_root_nwo | googleapis/google-cloud-python |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 1d344bdb7547fe6bca17a59bb2b8aac3dc9532a0 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width