close

Filter

loading table of contents...

Headless Server Developer Manual / Version 2204

Table Of Contents

Headless Server Developer Manual

Copyright CoreMedia GmbH © 2022

CoreMedia GmbH

Ludwig-Erhard-Straße 18

20459 Hamburg

International

All rights reserved. No part of this manual or the corresponding program may be reproduced or copied in any form (print, photocopy or other process) without the written permission of CoreMedia GmbH.

Germany

Alle Rechte vorbehalten. CoreMedia und weitere im Text erwähnte CoreMedia Produkte sowie die entsprechenden Logos sind Marken oder eingetragene Marken der CoreMedia GmbH in Deutschland. Alle anderen Namen von Produkten sind Marken der jeweiligen Firmen.

Das Handbuch bzw. Teile hiervon sowie die dazugehörigen Programme dürfen in keiner Weise (Druck, Fotokopie oder sonstige Verfahren) ohne schriftliche Genehmigung der CoreMedia GmbH reproduziert oder vervielfältigt werden. Unberührt hiervon bleiben die gesetzlich erlaubten Nutzungsarten nach dem UrhG.

Licenses and Trademarks

All trademarks acknowledged.

September 13, 2022

1. Preface
1.1. Audience
1.2. CoreMedia Services
1.2.1. Registration
1.2.2. CoreMedia Releases
1.2.3. Documentation
1.2.4. CoreMedia Training
1.2.5. CoreMedia Support
1.3. Typographic Conventions
1.4. Changelog
2. Overview
3. Configuration and Operation
3.1. Configuration of the Headless Server
3.2. Endpoints of the Headless Server
3.3. HTTP Cache-Control
3.4. Preview
3.4.1. JSON Preview Client
3.4.2. Custom Preview Client
3.5. Security
3.5.1. Whitelisting of GraphQL Queries
3.5.2. Limiting the Size of a Search Result
3.5.3. Limiting the Depth of a GraphQL Query
3.5.4. Limiting the Complexity of a GraphQL Query
3.5.5. Enforcing an Execution Timeout for GraphQL Queries
3.5.6. MediaType Content Negotiation
4. Development
4.1. Defining the GraphQL Schema
4.2. Headless Server Implementation with GraphQL-Java
4.2.1. Bootstrapping an Executable Schema
4.2.2. TypeDefinitionRegistry
4.2.3. RuntimeWiring
4.2.4. Invoking Queries
4.3. The @fetch Directive
4.4. The @inherit Directive
4.5. Model Mapper
4.6. Filter Predicates
4.7. Conversion Service
4.8. Adapter
4.9. Building Links
4.9.1. Link Composer for ID links
4.9.2. Link Composer for hyperlinks
4.9.3. Implementing Custom Link Composer
4.10. Content Schema
4.10.1. Simple Article Query
4.10.2. Article Query with Fragments and Parameters
4.10.3. Querying all available Sites
4.10.4. Site Query
4.10.5. Querying derived Sites
4.10.6. Page Query
4.10.7. Download Query
4.10.8. External Link Query
4.10.9. Querying localized variants
4.11. Using Time Dependent Visibility
4.12. Pagination
4.13. Remote Links
4.14. Taxonomies
4.15. Viewtypes
4.16. Plugin Support
4.16.1. Extension Points
4.16.2. Beans For Plugins
4.16.3. Resource file loading
5. Rich Text
5.1. Rich Text Output
5.1.1. The Include Directive
5.1.2. YAML Anchors and Aliases
5.1.3. Code Comments
5.1.4. Name Property
5.1.5. Elements Property
5.1.6. Classes Property
5.1.7. Contexts and InitialContext Property
5.1.8. HandlerSets Property
5.1.9. Internal Links
5.1.10. External Links
5.2. Using RichTextAdapters for Different Rich Text Grammars
5.2.1. Rich Text Adapters
5.2.2. Developing Custom RichTextAdapters
5.2.3. CoreMedia Grammar RichTextAdapter
6. Search
6.1. Generic Search
6.2. Dynamic Query Lists
6.3. Custom Filter Queries
7. eCommerce Extension
7.1. Headless Commerce Integration Architecture
7.2. Augmentation
7.2.1. Categories and Products Mapped to Media Content
7.2.2. Augmented Categories and Products
7.2.3. Augmented Pages
7.3. Product Lists
7.4. References to Products and Categories
7.5. eCommerce Setup and Configuration
8. Personalization Extension
8.1. Retrieve CMSelectionRules Documents
8.2. Rules
9. Persisted Queries
9.1. Loading Persisted Queries at Server Startup
9.1.1. Defining Persisted Queries in Plain GraphQL
9.1.2. Defining Persisted Query Maps in Apollo Format
9.1.3. Defining Persisted Query Maps in Relay Format
9.2. Query Whitelisting
9.3. Apollo Automatic Persisted Queries
10. REST Access to GraphQL
10.1. Mapping REST Access to Persisted Queries
10.2. JSLT Transformation
11. Site Filter
12. Media Endpoint
12.1. Media Endpoint URLs
12.2. Configuration of Media Endpoints
13. Metadata Root
13.1. PDE Mapping as Metadata
14. Frontend Client Development
14.1. Getting Started
14.1.1. Prerequisites
14.1.2. Setting up a React App
14.1.3. Setup Apollo for GraphQL
14.1.4. Developer Tools
14.2. Basic Guides
14.2.1. Retrieving All Sites from CoreMedia Headless Server
14.2.2. Configuring Apollo Cache
14.2.3. Rendering the Homepage of a Site
14.2.4. Navigation and Routing
14.2.5. Rendering an Article
14.3. Standalone Component
14.3.1. Usage
14.3.2. Caching and rendering the requested placement
15. Configuration Property Reference
Glossary
Index

List of Examples

3.1. Example Cache-Control Configuration
3.2. Configuring Content Type Resolution for PDF and EPS Files
4.1. Creating a ModelMapper for Calendar objects
4.2. Creating a filter predicate
4.3. Retrieve a value from a struct with the StructAdapter
4.4. Different ways to pass the paths parameter to the settings field from the GraphQL perspective
4.5. Define SettingsAdapter as bean
4.6. Retrieve settings with the SettingsAdapter
4.7. Accessing the DataFetchingEnvironment.
4.8. Example of a new http request header to be copied to the graphql context.
4.9. Example of a filter predicate using the new context parameter.
4.10. Example of a custom SuggestionSearchServiceProvider.
4.11. Using a bean for plugin in a plugin configuration
6.1. Example implementation of a custom filter query.
12.1. Retrieving the URI template of a picture
12.2. Retrieving the URI template of a picture with an alternative image format
12.3. Retrieving the URI or the fully qualified URL of the original file of a picture
14.1. Example for Hello World App
14.2. Example Component rendering all available sites as a list
14.3. Configuring the Apollo Cache
14.4. Page query with siteID
14.5. Page Component render function
14.6. Iterating over all rows of the PageGrid
14.7. The PageGridPlacement Component
14.8. Installing React Router
14.9. The App.jsx rendering with routing
14.10. The PageGridPlacement.jsx rendering links around article banner
14.11. Identify id of article
14.12. Generating the full image URL
14.13. Detailview of an article component
14.14. Fragment Integration with a separate DOM Placeholder
14.15. Fragment Integration of DOM element with custom data attribute
14.16. fetching the wanted placement
14.17. rendering the PageGridPlacement

Search Results

Table Of Contents
warning

Your Internet Explorer is no longer supported.

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