支持文件上传的基于aiohttp的GraphQL客户端

aiogqlc的Python项目详细描述


异步客户端/图形

PyPIPyPI - DownloadsPyPI - License

基于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())

贡献

快速启动

  1. 克隆回购
  2. 创建并进入专用虚拟环境
  3. 运行make install-dev安装开发依赖项和自动格式化代码的预提交钩子。在

如果您没有安装make,请安装它或查看Makefile以了解如何手动运行单个命令。在

格式化和linting

  • 运行make format格式化代码。在
  • 运行make lint以lint代码。在

测试

  • 运行make test在本地环境中运行所有测试。在
  • 运行make test-with-tox以运行所有支持的python版本的所有测试。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何拆分字符串(基于各种分隔符),但不保留空格?   解析。Json格式的txt文件和knime中的java   java Spring rest api为什么在rest api调用的响应中更改了数据类型   升华文本3抛出java。lang.ClassNotFoundException,而记事本++不存在   java Android指纹扫描仪在尝试5次后停止工作?   java Android如何设置精确的重复报警?   java如何使用HTTPGET connect为access API输入用户名和密码   java当测试报告显示没有测试失败时,Gradle为什么说“有失败的测试”?   用Gson实现java获取响应   MapReduce程序中函数错误的java不可映射参数   java spring安全性不符合自动代理的条件   java GWT使用异步回调进行同步/阻塞调用   java奇怪的类数组问题无法在jsp中显示   如何在java中使用PrinterJob使用epl打印条形码   java如何在JTable中居中单元格   将Java Mockito测试转换为Kotlin   html Java正则表达式模式匹配到多个相同标记   testCompile中缺少java Gradle(Android)多项目依赖项   在输入提示后输入字符串时发生java FileNotFoundException