The Draftbit Docs

Welcome to the Draftbit documentation. You'll find comprehensive documentation and information to help you start working with Draftbit as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Contentful

What is Contentful?

Contentful is an API first content management platform to create, manage and publish content on to any digital channel. It is a modern CMS (Content Management System) where a content model is created independent from any presentation layer. It organizes content into spaces, that allows you to group all the related resources for a project together, this includes content entries, media assets, and settings for localizing content into different languages.

Connect Contentful to Draftbit

Setup steps with Contentful

If you don't have a Contentful account, create one here.

The initial step to use Contentful Management API is to create a space, a content type, and using that content type, a content model. The content model can then store the data. All of this is required to get access to the REST API URL.

For this example, we are using an Empty Space with our own custom data inserted.

Get your REST API URL:

To perform read and write operations on a Contentful API is done via the Base URL: https://api.contentful.com/spaces/{YOUR_SPACE_ID}/environments/{YOUR_ENVIRONMENT_ID}. This Base URL requires you to specify a space ID and a default environment to start with. To access these values:

  • From your Contentful dashboard menu, click Settings > API Keys.
  • In the API Keys web page from the top right corner, click the button Add API Key.
  • Then copy and save Space ID as well as the default environment which is called master.

Get Authentication Token:

The Contentful Management API allows read and write operations to the Base URL only if there is an Authorization header is passed with the value of Bearer <cma_token>. To fetch the <cma_token>:

  • From your Contentful dashboard menu, click Settings > API Keys.
  • Go to the tab Content management tokens.
  • Click Generate personal token.
  • Enter a token name and click Generate.
  • Save the <cma_token> generated here because you won't be able to access it later. This going to be used in the next section.

Setup steps in Draftbit

To access the API in the Draftbit app, you need the pass the <cma_token> as the global variable in the form of an **Authorization** header.

  • Open the Settings tab on left-navbar.
  • In the Project Settings, navigate to Global Variables.
  • Enter a key to access the Authentication token and the value for it.
  • The Authorization token value requires you to enter a Bearer token. The syntax is Bearer <cma_token>.
  • In place of paste your own <cma_token> (from the previous section) and then click Add.
  • Click Save.

To add the Contentful API Base URL to your Draftbit app:

  • Open the Data tab on left-navbar.
  • From the Add a service menu, click on Rest API.
  • Enter a name for your REST API.
  • Paste your Base URL (from the previous section) into the Base URL input field.
  • Click the + from the Headers section to add a new Header.
  • Type Authorization for the key.
  • Select the Global Variable for Authorization (from the last step).
  • Click Save.

Available Contentful recipes for Draftbit

Fetch all data from Contentful API into a List in Draftbit

To a blank screen in Draftbit, add a nested Fetch component, List component, View component, and a Text component so that your Layer Tree looks like this:

Inside of the View component, you can place as many Text you would like to be rendered for each entry in your data set.

The next step is to create an endpoint. Let's try fetching the data using the GET request:

  • Click Create new endpoint.
  • Enter a name for this endpoint.
  • Click the Test button next to the Endpoint input to make sure you've successfully connected to your Contentful API.
  • Once everything looks right, click Save to close the modal.
  • Select the Fetch component in the Layer Tree and select the Service you have created.
  • Select the Endpoint you want to fetch the data from.
  • Select the List component in the Layer Tree.
  • Change its Mapped Value to data.items under the Data Tab.
  • Now you can configure a Mapped Value on each Text component to fields.title.en-US you have inside the View of your Fetch component.
  • Here is also a Preview mode is shown on how the data is fetched from the service API.

Fetch single entry into a Draftbit app

To a blank screen in Draftbit, add a nested Fetch component, View component, and a Text component so that your Layer Tree looks like this:

To fetch a single entry from Contentful CMS, you'll have to specify the entry ID which is found when fetching data in the Preview mode.

  • Click Create new endpoint.
  • Enter a name for this endpoint.
  • Add the /{{ID}} in Add Path & Params.
  • Add a Test value for the {{ID}}.
  • Click the Test button next to the Endpoint input to make sure you've successfully connected to your Contentful API.
  • Once everything looks right, click Save to close the modal.
  • Select the Fetch component in the Layer Tree and select the Service you have created.
  • Select the Endpoint you want to fetch the data from.
  • Add the value for the ID in the Configuration section. This value is used to fetch the single record.
  • Now you can configure a Mapped Value on each Text component to fields.title.en-US you have inside the View of your Fetch component.
  • Here is also a Preview mode is shown on how the data is fetched from the service API.

Add new data from a Draftbit app

You need to use a component that:

  1. accepts user input and
  2. has a Field Name prop to POST data using Contentful API.

Examples of these include:

Once you have the necessary component(s) on your screen, you'll need to create a new endpoint in your Contentful service.

In the new endpoint you'll need to:

  • Enter a name for the Endpoint.
  • Change the Method to POST using the dropdown.
  • On the right-hand side of the modal, click the Body Structure tab and insert the request of the body. This will differ depending on the fields you have in your content model.
  • The value of the field is going to be the value of the Field Name prop in Draftbit. This is generally assigned a default value whenever you add a TextInput component in your Draftbit app. To add it in the Body Structure, it needs to be inside the double curly braces as: {{FIELD_NAME_PROP_VALUE}}. The information regarding this is also given in the Body tab.
  • In the Body tab you can provide a Test Value for {{FIELD_NAME_PROP_VALUE}}. A Test value is a temporary value that can be used for variables during development.
  • To create a new entry using POST request, you have to pass a new header called X-Contentful-Content-Type with its value as content type created when creating the Contentful space. For example, the content type for this API is called books. Go the Headers tab to add this header type.
  • In the Body Preview tab you verify that the Body Structure has a valid structure.
  • Click the Test next to the Endpoint to test if the endpoint is working correctly.
  • Click Save.

Below is a general breakdown of what the request will look like. You're able to add multiple fields to a request, just make sure you include a comma after each field,:

{
  "fields": {
    "title": {
      "en-US": {{textInputValue}}
    }
  }
}

You can add the POST endpoint to submit the data entered in the Draftbit using the TextInput component and Touchable component.

  • On the Touchable component go to the Interactions tab (the last tab).
  • Click the + to open a drop-down menu in the Action tab and select the option Submit Data.
  • Setup the Submit Data by selecting the Service and the Endpoint.
  • Then add the configuration for body request to be sent by selecting the value for textInputValue.

Now you can make a POST request to add new data from the Draftbit app.

Update data from a Draftbit app

The PUT request is used to update the single content entity. It accepts similar input components as mentioned in POST request and the request is triggered using a Touchable component.

To navigate from the main screen of the app to the screen where the updated value is entered and then eventually the PUT request Endpoint is triggered, the initial step is to create a new screen with a TextInput component, a Touchable component, and a Text component.

  • Select the Touchable component that is specified for updating a value in-app screen.
  • Go to the Interactions tab.
  • Click the + to open a drop-down menu in the Action tab and select the option Navigate.
  • Set the Destination option to point to a new screen where the value can be updated.
  • In the Pass Data option, click the + to add a key-value pair.
  • Add the ID as the key and then select its value to be passed to the navigation screen.

You'll need to create a new endpoint in your Contentful service. In the new endpoint you'll need to:

  • Enter a name for the Endpoint.
  • Change the Method to PUT using the drop-down.
  • Add the {{ID}} of the entry to update in the Add Path & Params input.
  • Add a Test Value for the ID to test the Endpoint.
  • To create a new entry using PUT request, you have to pass a new header called X-Contentful-Version with its value as the last version of the entry you are updating. For example, the content type for this API is called 3. Go the Headers tab to add this header type.
  • On the right-hand side of the modal, click the Body Structure tab and insert the request of the body. This will differ depending on the entities you have in your content model.
  • The value of the field is going to be the value of the Field Name prop in Draftbit. This is generally assigned a default value whenever you add a TextInput component in your Draftbit app. To add it in the Body Structure, it needs to be inside the double curly braces as: {{FIELD_NAME_PROP_VALUE}}. The information regarding this is also given in the Body tab.
  • In the Body tab you can provide a Test Value for {{FIELD_NAME_PROP_VALUE}}.
  • Click the Test next to the Endpoint to test if the endpoint is working correctly.
  • Click Save.

Delete data from a Draftbit app

The DELETE request is to the Contentful API with an entry's ID to remove that particular record from the table.

You'll need to create a new endpoint in your Contentful service. In the new endpoint you'll need to:

  • Enter a name for the Endpoint.
  • Change the Method to DELETE using the dropdown.
  • Add the {{ID}} of the entity to delete in the Add Path & Params input.
  • To create a new entry using DELETE request, you have to pass a new header called X-Contentful-Version with its value as the last version of the entry you are updating. For example, the content type for this API is called 3. Go the Headers tab to add this header type.
  • Add a Test Value for the ID to test the Endpoint.
  • Click the Test next to the Endpoint to test if the endpoint is working correctly.
  • Click Save.

Updated 2 months ago


Contentful


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.