close

Filter

loading table of contents...

Headless Server Developer Manual / Version 2307

Table Of Contents

9.1.1 Defining Persisted Queries in Plain GraphQL

All resources matching the pattern configured with the property caas.persisted-queries.query-resources-pattern are loaded as persisted queries, one query per resource file. The filename without extension serves as the query ID. The pattern must be suitable for a Spring PathMatchingResourcePatternResolver which is used to load these resources.

The default pattern is classpath:graphql/queries/*.graphql, which means that all resource files within the graphql/queries directory are loaded if they have the graphql file extension.

Actually, not all resource files matching this pattern might be loaded - there is a configuration property caas.persisted-queries.exclude-file-name-pattern that specifies a regular expression for resource files to be ignored.

This pattern defaults to .*Fragment(s)?.graphql which is useful to skip resource files holding reusable query fragments. These fragments may then be included into a query file by means of the #import directive. The following is an example query including fragments from the resource referenceFragments.graphql:

query ArticleQuery($id: String!) {
  content {
    article(id: $id) {
      ... Reference
      title
      detailText
      teaserTitle
      teaserText
  }
}
#import "./referenceFragments.graphql"

If this query is saved in a resource file with the name article.graphql, the query will have the ID article. Therefore, you may now send a HTTP GET request with just this ID instead of the query string:

wget -q -O -  'http://myheadlessserver:41180/graphql?id=article&variables={"id":"1556"}'

Search Results

Table Of Contents
warning

Your Internet Explorer is no longer supported.

Please use Mozilla Firefox, Google Chrome, or Microsoft Edge.