Skip to main content

Custom Content Management API development

Overview of custom CMA development

For stable production functionality, it typically makes more sense to build a custom Content Management endpoint via code, rather than entirely through editorial configuration. An endpoint class can ensure that a fixed set of APIs are exposed with configuration that should not change between different environments.

Implementing custom CMAs

Create a new Java class extending ContentManagementApiEndpoint.Implement required methods:

  • getPathSuffix—appended to /graphql/management/ to create the path where the API endpoint is available.
  • getEntryFields—objects wrapping Dari record types used to generate the schema and expose APIs.

Example:

showLineNumbers
1
public class FooContentManagementApiEndpoint extends ContentManagementApiEndpoint {
2
3
@Override
4
protected String getPathSuffix() {
5
return "foo"; // API endpoint is available at path '/graphql/management/foo'
6
}
7
8
@Override
9
public List<ContentManagementEntryPointField> getEntryFields() {
10
return Arrays.asList(
11
new ContentManagementEntryPointField(Foo.class, true),
12
new ContentManagementEntryPointField(Bar.class, true));
13
}
14
}