algolia / algolia/algoliasearch-client-python
Google App Engine 1 (Python 2) Issue for making requests to algolia
- 主要言語
- Python
- スター
- 207
- フォーク
- 63
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
- Version: 2.4.0
### Underlying cause
I am using Algolia in Google App Engine (GAE1) and we are using `requests` library to issue requests as well. However, due to GAE1 limitations, we need to use an additional library called `requests_toolbelt`. This library changes underlying `requests` library to use `urlfetch`. Details of that can be found [here](https://cloud.google.com/appengine/docs/standard/python/issue-requests).
In `Requester`, Algolia library is importing `HttpAdapter` which is the wrong adapter for the GAE1 that using `requests` library. It needs to import `AppEngineAdapter` from `requests_toolbelt` to correctly read the response otherwise request will fail.
I have fixed the problem by introducing a custom code.
```
import sys
if sys.version_info >= (3, 0):
self._session.mount("https://", HTTPAdapter(max_retries=Retry(connect=0)))
else:
from requests_toolbelt.adapters.appengine import AppEngineAdapter
self._session.mount('https://', AppEngineAdapter(max_retries=Retry(connect=0)))
```
This solution only works for the GAE1 which is fine for me. This issue is also can be closed. However, it would be helpful to have a section in Algolia Docs to mention this problem since it will affect other App Engine users.
コントリビューションガイド
調査の方向性
まず、Google App Engine 1 (Python 2) との互換性に関する issue の詳細と、リンクされている Requests のガイダンスを確認してください。GAE1 ユーザーにはデフォルトのアダプターではなく requests_toolbelt の AppEngineAdapter が必要であることを文書化し、ドキュメントで対象となる構成が明確に示されていることを確認してください。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- documentation
- issue の種類
- ドキュメント
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100