Я использую next.js для создания статических веб-страниц в формате HTML.
Одной из моих веб-страниц нужны данные из стороннего API, которые я хотел бы получить во время сборки и встроить в полученный HTML.
Я не хочу, чтобы этот звонок когда-либо происходил на клиенте, потому что:
- CORS в любом случае предотвращает успешное выполнение запроса
- Мне бы пришлось предоставить ключ API на клиенте (нет, спасибо)
Я думал, что getInitialProps
был ответом, потому что полученные данные действительно запекаются во время процесса сборки / экспорта, но когда я ухожу со страницы и возвращаюсь с нее, getInitialProps
запускается на клиенте, нарушая все.
Мой текущий код в getInitialProps выглядит примерно так:
static async getInitialProps(){
// Get Behance posts
const behanceEndpoint = `https://www.behance.net/v2/users/${process.env.BEHANCE_USERNAME}/projects?api_key=${process.env.BEHANCE_API_KEY}`
const behanceRes = await fetch(behanceEndpoint)
let behancePosts = await behanceRes.json()
// Return only the required number of posts
return {
behancePosts: behancePosts
}
}
Любые советы или лучшие практики о том, как с этим справиться? Я знаю, что Gatsby.js делает это из коробки.