Skip to main content

A dead-simple GraphQL client that supports subscriptions over websockets

Project description

py-graphql-client

Dead-simple to use GraphQL client over websocket. Using the apollo-transport-ws protocol.

Install

pip install py-graphql-client

Examples

Setup subscriptions super easily

from graphql_client import GraphQLClient

ws = GraphQLClient('ws://localhost:8080/graphql')
def callback(_id, data):
  print("got new data..")
  print(f"msg id: {_id}. data: {data}")

query = """
  subscription {
    notifications {
      id
      title
      content
    }
  }
"""
sub_id = ws.subscribe(query, callback=callback)
...
# later stop the subscription
ws.stop_subscribe(sub_id)
ws.close()

Variables can be passed

from graphql_client import GraphQLClient

ws = GraphQLClient('ws://localhost:8080/graphql')
def callback(_id, data):
  print("got new data..")
  print(f"msg id: {_id}. data: {data}")

query = """
  subscription ($limit: Int!) {
    notifications (order_by: {created: "desc"}, limit: $limit) {
      id
      title
      content
    }
  }
"""
sub_id = ws.subscribe(query, variables={'limit': 10}, callback=callback)

Normal queries and mutations work too

from graphql_client import GraphQLClient

ws = GraphQLClient('ws://localhost:8080/graphql')
query = """
  query ($limit: Int!) {
    notifications (order_by: {created: "desc"}, limit: $limit) {
      id
      title
      content
    }
  }
"""
res = ws.query(query, variables={'limit': 10})
print(res)
ws.close()

TODO

  • support http as well
  • should use asyncio websocket library?

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py-graphql-client-0.1.1.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

py_graphql_client-0.1.1-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file py-graphql-client-0.1.1.tar.gz.

File metadata

  • Download URL: py-graphql-client-0.1.1.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2

File hashes

Hashes for py-graphql-client-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3c06fd6ed4bdc15e4e84c39050169c2e4054c4056535392fd740e0d080796ed7
MD5 d68f67db0baa7ddf08ca2c392daff7bf
BLAKE2b-256 ed7b82dd4408dca40b545641d5024171a436e265bc1a8d17a81fe1f7725e65e9

See more details on using hashes here.

File details

Details for the file py_graphql_client-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: py_graphql_client-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2

File hashes

Hashes for py_graphql_client-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 434e90af206efc001ba5876163516b0d5d370b2b7c8424d3fb34ef3854d76356
MD5 2505e23ef45b22e723e447e4b29f3bff
BLAKE2b-256 2dc1dbaa686fd1986448b45124f061ac48ca6ab80cedd5c5eb0eb6f2e1964919

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page