Skip to content
Snippets Groups Projects
Commit 75b60a84 authored by Hangzhi Yu's avatar Hangzhi Yu
Browse files

Enable gql batch queying

parent f91162e9
No related branches found
No related tags found
1 merge request!1252Resolve "Improve performance of polling queries"
......@@ -34,6 +34,7 @@ Added
* Provide API endpoint for system status.
* [Dev] UpdateIndicator Vue Component to display the status of interactive pages
* [Dev] DeleteDialog Vue Component to unify item deletion in the new frontend
* Use build-in mechanism in Apollo for GraphQL batch querying.
Changed
......
......@@ -2,11 +2,12 @@
* Configuration for Apollo provider, client, and caches.
*/
import { ApolloClient, HttpLink, from } from "@/apollo-boost";
import { ApolloClient, from } from "@/apollo-boost";
import { RetryLink } from "@/apollo-link-retry";
import { persistCache, LocalStorageWrapper } from "@/apollo3-cache-persist";
import { InMemoryCache } from "@/apollo-cache-inmemory";
import { BatchHttpLink } from "@/apollo-link-batch-http";
// Cache for GraphQL query results in memory and persistent across sessions
const cache = new InMemoryCache();
......@@ -33,14 +34,17 @@ const links = [
// Automatically retry failed queries
new RetryLink(),
// Finally, the HTTP link to the real backend (Django)
new HttpLink({
new BatchHttpLink({
uri: getGraphqlURL(),
batchInterval: 200,
batchDebounce: true,
}),
];
/** Upstream Apollo GraphQL client */
const apolloClient = new ApolloClient({
cache,
shouldBatch: true,
link: from(links),
});
......
......@@ -587,6 +587,7 @@ YARN_INSTALLED_APPS = [
"@iconify/json@^2.1.30",
"@mdi/font@^7.2.96",
"apollo-boost@^0.4.9",
"apollo-link-batch-http@^1.2.14",
"apollo-link-retry@^2.2.16",
"apollo3-cache-persist@^0.14.1",
"deepmerge@^4.2.2",
......
......@@ -27,7 +27,7 @@ urlpatterns = [
path("__icons__/", include("dj_iconify.urls")),
path(
"graphql/",
csrf_exempt(views.LoggingGraphQLView.as_view(graphiql=True)),
csrf_exempt(views.LoggingGraphQLView.as_view(batch=True)),
name="graphql",
),
path("logo", force_maintenance_mode_off(views.LogoView.as_view()), name="logo"),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment