Models
Your schema is defined by the models you create, and fields you add. Inside the schema builder, you can add fields, create relationships between models, and much more.
All changes to your schema are immediately available via GraphQL.
#Create a model
All models have the following settings:
Property | Example | Description |
---|---|---|
Display name | Post | The name displayed inside Hygraph, and content editors. |
API ID | Post | The name for fetching a single entry |
Plural API ID | Posts | The name for fetching multiple entries |
Description | Blog posts | Optional hint for content editors when interacting with fields. |
Hygraph will automatically scaffold default values for API ID
, and Plural API ID
based on the Display name
. These values will be available via the API as camel case.
For example, let's imagine we have the model Post
. The following queries, and mutations would be generated by the API automatically, as well as custom input types:
post
posts
postVersion
postsConnection
createPost
updatePost
deletePost
upsertPost
publishPost
unpublishPost
updateManyPostsConnection
deleteManyPostsConnection
publishManyPostsConnection
unpublishManyPostsConnection
Learn more about queries, and mutations.
#Edit a model
You can at any time update the settings, and Preview URLs for your content models from within the schema builder.
#Delete a model
For each of the content models you have created, you can choose to update, or delete from the schema builder.
Deleting a model will also delete all of the content entries.
#Adding fields
You can add fields to all custom models, and the system Asset model by selecting the field type from the fields list when viewing a model.
#System fields
All models have system fields. You don't need to add an ID, created, or updated timestamp. These are managed by Hygraph automatically.
Learn more about system fields.
#Preview URLs
It's most common to create a preview URL for models that represent a page, and have a field such as a slug.
The fields on your model are available to use within the URL template. For example, a Post
model may have the following preview URLs:
Preview name | URL template |
---|---|
Production | https://hygraph.com/blog/{slug} |
Staging | https://staging.hygraph.com/blog/{slug} |
Next.js Preview | https://hygraph.com/api/preview?secret=abc&slug={slug} |
#Embedded types
All models can be embedded into the Rich Text Field Type via a configuration setting. On the API side, we create a union relation that references the selected model.