Skip to main content

Plugin to compose your Tartiflette Graphql service in an Apollo federation

Project description

See https://github.com/remorses/tartiflette-apollo-federation-example for an example For now the plugin only supports simple sharing of types with the same fields and merging of the query and mutation fileds, In the near future there will be support for the @keydirective and a new @ResolveReference('TypeName') decorator to resolve the types between servers, similar to how Apollo __resolveReference works.

To suggest other better api ideas on how to implement __resolveReference open a issue.

Installation

pip install tartiflette_plugin_apollo_federation

Usage

from tartiflette_aiohttp import register_graphql_handlers
from tartiflette_plugin_apollo_federation import ApolloFederationPlugin

def run():
    engine_sdl = "./sdl/"
    app = register_graphql_handlers(
        app=web.Application(),
        engine_sdl=engine_sdl,
        engine_modules=[
            ApolloFederationPlugin(engine_sdl=engine_sdl)
        ],
        executor_http_endpoint="/graphql",
        graphiql_enabled=True,
    )
    web.run_app(app, port=PORT)

run()

Then use xmorse/apollo-federation-gateway to glue together your services

version: '3'
services:
    service1:
        build: ./service1
    service2:
        build: ./service2
    gateway:
        image: xmorse/apollo-federation-gateway
        ports:
            - 8000:80
        environment: 
            URL_0: "http://service1:8001/graphql"
            URL_1: "http://service2:8002/graphql"

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

File details

Details for the file tartiflette_plugin_apollo_federation-0.0.6.tar.gz.

File metadata

  • Download URL: tartiflette_plugin_apollo_federation-0.0.6.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.6.8

File hashes

Hashes for tartiflette_plugin_apollo_federation-0.0.6.tar.gz
Algorithm Hash digest
SHA256 ab4fbfc43955e0ac7a84addeb9a35f4e64ef1fe5184c3090cf1dcd0291fdf7c8
MD5 0b05bb47abf8a3310542a3982dab8c53
BLAKE2b-256 b3ec0e675405e78557187c534e5a14e116603297c66b605de0778cea17eb7ed7

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