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.

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

  • currently wss doesn't not work. support wss.
  • tests
  • 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.0.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

py_graphql_client-0.1.0-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: py-graphql-client-0.1.0.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for py-graphql-client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 98605b4a65ada09fca9f3a30c40c056af3032885ac35d9e821ee3ec76e9e81bf
MD5 5e9bdf4b2d35b46f46af2afa870ca6d0
BLAKE2b-256 79954a33fba3d74710c680ee6c9e8f3cde26641baff119358c28e75fda1cf995

See more details on using hashes here.

File details

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

File metadata

  • Download URL: py_graphql_client-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for py_graphql_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 655079369151c29a35fc20a46dce3d26430de9443046a2256391cd9afed2f820
MD5 07dbe333b56ffdd4222e5795494e93c4
BLAKE2b-256 a9d970df2c0f0bcce2f54028f77d814b923c2c0264f3bc7bc81871993536823b

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