GraphQL speed improvements
gapi
Storyblok's GraphQL api just got huge performance improvements and the possibility to use automatic persisted queries which will save you a lot of traffic.
Improvements:
- The average response times of non CDN requests are 6 times faster
- Support for automatic persisted queries (opens in a new window) and CDN has been added
Usage example in Next.js of persisted queries:
To use automatic persisted queries you need to add the library apollo-link-persited-queries like done in the Next.js example https://github.com/storyblok/nextjs-persisted-query-graphql-example.
import { ApolloClient } from 'apollo-client'
import { InMemoryCache } from 'apollo-cache-inmemory'
import withApollo from 'next-with-apollo'
import { createHttpLink } from 'apollo-link-http'
import { createPersistedQueryLink } from 'apollo-link-persisted-queries'
import fetch from 'isomorphic-unfetch'
const GRAPHQL_URL = 'https://gapi.storyblok.com/v1/api'
const link = createPersistedQueryLink({useGETForHashedQueries: true}).concat(createHttpLink({
fetch, // Switches between unfetch & node-fetch for client & server.
uri: GRAPHQL_URL,
headers: {
'Token': 'YOUR_TOKEN',
'Version': 'published',
'Accept': 'application/json'
}
}))
export default withApollo(
({ initialState }) =>
new ApolloClient({
link: link,
cache: new InMemoryCache()
// rehydrate the cache using the initial data passed from the server:
.restore(initialState || {})
})
)