-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.py
35 lines (30 loc) · 1.03 KB
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# server.py
import os
from dotenv import load_dotenv
import uvicorn
from ariadne import QueryType, make_executable_schema
from ariadne.asgi import GraphQL
from starlette.applications import Starlette
from starlette.routing import Route, Mount
from starlette.staticfiles import StaticFiles
from my_graphql.schemas.index import type_defs
from my_graphql.resolvers.index import resolve_generate_architecture
from ariadne.contrib.federation import make_federated_schema
# Load dotenv
load_dotenv()
# Ariadne setup
query = QueryType()
query.set_field("generate_architeture", resolve_generate_architecture)
schema = make_federated_schema(type_defs, query)
graphql_app = GraphQL(schema, debug=True)
# Define the routes for the app
routes = [
Route("/", graphql_app),
Mount("/data", StaticFiles(directory="data"), name="static"),
]
# Create the Starlette app with the defined routes
app = Starlette(routes=routes)
if __name__ == "__main__":
uvicorn.run(
"server:app", host="localhost", port=int(os.getenv("PORT")), reload=True
)