Storyblok

Installation

The package can be installed by adding storyblok to your list of dependencies in mix.exs:

def deps do
  [
    {:storyblok, "~> 2023.12.24-beta.1"}
  ]
end

Configuration

Storyblok API Token

The Storyblok token can be configured 2 ways.

Application

To configure the token for your entire application, add the following to your config file.

import Config

config :storyblok, token: "<TOKEN>"

Per Request

Alternatively, the token can be configured per request by passing token to Storyblok.request.

"123"
|> Storyblok.Story.get()
|> Storyblok.request(token: "<TOKEN>")

Caching

The default configuration is to disable caching, every request hits the Storyblok API.

Caching can be enabled by setting the follow configs.

import Config

config :storyblok, cache: true, cache_store: MyApp.CacheModule

Any store can be used for caching (Redis, MemCached, etc), your application must implement the Storyblok.Cache behaviour.

defmodule MyApp.CacheModule do
  def fetch(key, opts) do
    case MyApp.get(key, opts) do
      {:ok, data} -> {:ok, data}
      {:error, _reason} -> {:error, :not_found}
    end
  end

  def set(key, value, expire_in_ms, opts) do
    case MyApp.set(key, value, expire_in_ms, opts) do
      {:ok, _data} -> :ok
      {:error, reason} -> {:error, reason}
    end
  end
end