Erste Datensätze lesen und schreiben

Die Seite ruft die Server action auf. Die Action fügt eine Zeile ein und gibt sie zurück.

Aus der Action schreiben

Füge eine Action namens create_post mit diesem Code hinzu.

Action

async ({ input, orbi }) => {
  const apiKey = orbi.project.apiKeys.find((key) => key.connectorId)
  if (!apiKey) throw new Error("Create an API key for the database under Workspace settings, API Keys.")
  const response = await fetch("https://core.orbitype.com/api/sql/v1", {
    method: "POST",
    headers: {
      "content-type": "application/json",
      "X-API-KEY": apiKey.key,
    },
    body: JSON.stringify({
      sql: "INSERT INTO posts (title) VALUES (:title) RETURNING *",
      bindings: { title: input.title },
    }),
  })
  if (!response.ok) throw new Error(await response.text())
  return await response.json()
}

Von der Seite aufrufen

Rufe im Dokument die Action auf und zeige den Titel, den sie zurückgibt.

const created = await Orbi.action("create_post", { title: "Hello" })
const row = created.output?.[0]
document.body.textContent = row ? row.title : "No row"

Lade die Vorschau neu. Die Seite zeigt Hello. Öffne die Tabelle posts. Die Zeile ist dort.

Dasselbe INSERT funktioniert außerhalb der App, sobald du den Header X-API-KEY sendest. Diese Seite ist die SQL API.

Wenn das fehlschlägt: Die Seite sagt No row

output ist das Array der Zeilen. Wenn es leer ist, hat das Insert keine Zeile zurückgegeben. Füge RETURNING * hinzu. Wenn der Action-Name nicht passt, bekommst du action not found. Wenn der Tabellenname falsch ist, bekommst du relation does not exist.