支持文件上传的基于aiohttp的GraphQL客户端
aiogqlc的Python项目详细描述
异步客户端/图形
基于aiohttp
的Python异步/IO GraphQL客户机,支持文件上载的GraphQL multipart form requests spec。在
要求
- Python(>;=3.6)
- aiohttp(>;=3.6.0)
安装
pip install aiogqlc
使用
执行简单查询
importasyncioimportaiohttpfromaiogqlcimportGraphQLClientquery=''' query { allFilms { title } }'''asyncdeffoo():asyncwithaiohttp.ClientSession()assession:client=GraphQLClient('https://swapi.graph.cool/',session=session)response=awaitclient.execute(query)print(awaitresponse.json())if__name__=='__main__':asyncio.get_event_loop().run_until_complete(foo())
添加授权头
^{pr2}$单文件上传
importaiohttpfromaiogqlcimportGraphQLClientquery=''' mutation($file: Upload!) { yourSingleUploadMutation(file: $file) { errors { field messages } } }'''variables={'file':open('test.zip','rb'),}asyncdeffoo():asyncwithaiohttp.ClientSession()assession:client=GraphQLClient('https://example.com/graphql/',session=session)response=awaitclient.execute(query,variables=variables)print(awaitresponse.json())
多文件上传
importaiohttpfromaiogqlcimportGraphQLClientquery=''' mutation($files: [Upload!]!) { yourMultiUploadMutation(files: $files) { errors { field messages } } }'''variables={'files':[open('foo.zip','rb'),open('var.zip','rb'),],}asyncdeffoo():asyncwithaiohttp.ClientSession()assession:client=GraphQLClient('https://example.com/graphql/',session=session)response=awaitclient.execute(query,variables=variables)print(awaitresponse.json())
贡献
快速启动
- 克隆回购
- 创建并进入专用虚拟环境
- 运行
make install-dev
安装开发依赖项和自动格式化代码的预提交钩子。在
如果您没有安装make
,请安装它或查看Makefile
以了解如何手动运行单个命令。在
格式化和linting
- 运行
make format
格式化代码。在 - 运行
make lint
以lint代码。在
测试
- 运行
make test
在本地环境中运行所有测试。在 - 运行
make test-with-tox
以运行所有支持的python版本的所有测试。在
- 项目
标签: