Skip to content

Instantly share code, notes, and snippets.

View salwator's full-sized avatar
🏃‍♂️
./run.sh

Jakub salwator

🏃‍♂️
./run.sh
View GitHub Profile
@salwator
salwator / got_schema.graphql
Last active April 18, 2019 09:50
GoT GraphQL Schema
scalar Date
type Person {
name: String
house: House
parents: [Person!]
isAlive: Boolean
}
type House {
@salwator
salwator / got_server.py
Last active April 29, 2019 07:48
GoT in Ariadne
from ariadne import ObjectType, QueryType, gql, make_executable_schema
from ariadne.asgi import GraphQL
type_defs = gql(
"""
type Person {
name: String
house: House
parents: [Person!]
isAlive: Boolean
@salwator
salwator / got_graphene.py
Last active April 29, 2019 07:48
GoT in Graphene
import graphene
class House(graphene.ObjectType):
name = graphene.String(required=True)
castle = graphene.String(required=True)
members = graphene.List(graphene.NonNull(lambda: Person))
class Person(graphene.ObjectType):
@salwator
salwator / ariadne_federated.py
Last active November 19, 2019 13:01
Ariadne service implementation that extends saleor with fake reviews
from dataclasses import dataclass
from typing import List
from ariadne import ObjectType, MutationType, QueryType, snake_case_fallback_resolvers
from ariadne_extensions import federation
from ariadne.asgi import GraphQL
query = QueryType()
manager = federation.FederatedManager(query=query, schema_sdl_file="schema.graphql")
@salwator
salwator / schema.graphql
Created October 8, 2019 14:07
GraphQL schema for federated service extending saleor
type User @key(fields: "id") @extends {
id: ID! @external
reviews: [Review]
}
type Review @key(fields: "id") {
id: ID!
title: String
author: User
}
@salwator
salwator / index.js
Created October 8, 2019 14:09
Apollo Server for saleor federation with JWT
const { ApolloServer } = require("apollo-server");
const { ApolloGateway, RemoteGraphQLDataSource } = require("@apollo/gateway");
const gateway = new ApolloGateway({
serviceList: [
{ name: "saleor", url: "http://localhost:8000/graphql/" },
{ name: "reviews", url: "http://localhost:8080/" },
],
buildService({ name, url }) {
return new RemoteGraphQLDataSource({