---
title: Strapi
description: >-
  Lies einen Strapi-Content-Type über seine REST-API mit der strapi()-Quelle ein und wandle Blocks-Inhalte sowohl unter Strapi 4 als auch unter Strapi 5 in Markdown um.
---

Der integrierte `strapi()`-Adapter liest einen Content-Type über die Strapi-REST-API (`/api/<pluralApiId>`) und wandelt den Blocks-Inhalt jedes Eintrags in Markdown um: Absätze, Überschriften, Listen, Zitate, Codeblöcke, Bilder und Links. Ein Markdown-Rich-Text-Feld wird unverändert übernommen. Die einzige Ausnahme sind Links, die weder auf eine Web-, Mail- oder Telefonadresse noch auf eine relative Adresse verweisen. Von ihnen bleibt nur die Beschriftung erhalten. Antworten von Strapi 5 werden direkt gelesen, und die `attributes`-Hülle von Strapi 4 wird aufgelöst, sodass dieselben Feldpfade gelten. Du musst nichts installieren.

```ts blume.config.ts
import { defineConfig } from "blume";
import { filesystem, strapi } from "blume/sources";

export default defineConfig({
  content: {
    sources: [
      filesystem({ root: "docs" }),
      strapi({
        prefix: "guides",
        url: "https://cms.example.com",
        contentType: "guides",
        // locale: "en"
        // Field paths default to title / description / slug / content / updatedAt
        fields: { body: "body" },
        // Extra query parameters: filters[...], sort
        params: { "filters[section][$eq]": "sdk" },
      }),
    ],
  },
});
```

Das API-Token stammt aus der Umgebungsvariable `STRAPI_API_TOKEN` und wird als Bearer-Token gesendet. Einträge werden mit `populate=*` abgerufen, damit Bilder ihre URLs mitbringen (setze `populate`, um das einzuschränken). Ein relativer Upload-Pfad (`/uploads/x.png`) wird relativ zu `url` aufgelöst. Importiert werden nur veröffentlichte Einträge. Mit `--preview` werden Entwürfe angefragt (`status=draft` unter Strapi 5, `publicationState=preview` unter Strapi 4). Jedes Dokument, das noch nie veröffentlicht wurde, wird dabei mit `draft: true` bereitgestellt. Bei einem veröffentlichten Dokument siehst du in der Vorschau seinen neuesten Entwurf.
