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.