Fetch Data from Third-Party Services
Sometimes we need our blocks to consume third-party data, such as a blog API. In this how-to, we will see how to achieve just that.
We will be consuming data from https://jsonplaceholder.typicode.com/posts
.
1. Locate Your Get Data File
Open up your block's code and find getDataProps.js
. It should look like this:
export const getDataProps = (utils, props) => Promise.resolve()
2. Make the Request Call You Need
export const getDataProps = (utils, props) => {return utils.client.request('https://jsonplaceholder.typicode.com/posts').then(res => res.json()).catch(e => [])}
The request
function is exactly like the fetch function, and works both in the server and on the client.
You don't have to care about importing the right version of the function depending on which environment you are in.
3. Use the Data from Your Block
From your render function located in src/Block.js, you will have the data available:
function StarterBlock(props) {const posts = props.data;...}