Aurabase Logosu
aura tabanıdokümanlar
dokümanlar›Edge Functions›Text, binary and HTML responses

Metin, ikili ve HTML döndür

Bir işlevden metin, resim, dosya veya HTML nasıl gönderilir ve bunlar SDK veya düz HTTP ile nasıl okunur?

6 dk. oku·Seviye orta düzey·12 Eki 2026 tarihinde revize edildi
Bu İngilizce metin, Fransızca orijinalinden otomatik olarak oluşturulmuştur ve henüz incelenmemiştir.
Bu sayfa otomatik olarak çevrildi. İngilizce versiyonu yetkilidir.
#
Karar

1. Bir yanıt türü seçin

İşleviniz geri dönüyorresponseType kullanındata:
JSON'json' (varsayılan)ayrıştırılmış değer
Düz metin, CSV, HTML'text' (veya aynı zamanda dizeyi döndüren 'json')bir string
Bir resim, bir PDF, herhangi bir bayt'blob' veya 'arrayBuffer'bir Blob veya bir ArrayBuffer

Varsayılan 'json' modu JSON ve metni taşıyabilir. bayt taşıyamaz: Bir işlev ikili içerik türüyle yanıt verirse, SDK invalid_response hatasını döndürür ve size 'blob' veya 'arrayBuffer' seçmenizi söyler, böylece hiçbir şey sessizce kaybolmaz.

#
SDK'sı

2. SDK ile okuyun

aurabase/functions/export/index.tstypescript
Deno.serve((req) => {
  const { pathname } = new URL(req.url)
  if (pathname === '/csv') {
    return new Response('id,name\n1,Ada\n', { headers: { 'content-type': 'text/csv' } })
  }
  // Bayt gidiş-dönüş göstermeye yetecek kadar 8 bayt PNG imzası
  const bytes = new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10])
  return new Response(bytes, { headers: { 'content-type': 'image/png' } })
})
client.tstypescript
const csv = await aura.functions.invoke<string>('export', { path: '/csv', responseType: 'text' })
console.log(csv.data) // "kimlik,ad\n1,Ada\n"

const img = await aura.functions.invoke<Blob>('export', { responseType: 'blob' })
console.log(img.data?.type, img.data?.size) // "resim/png" 8

137,80,78,71,13,10,26,10,255,0,1 baytlarını döndüren bir işlevle gerçek bir çalıştırmada, arrayBuffer tam olarak bu 11 baytı döndürdü ve blob, type=image/png size=11 değerini döndürdü.

'text', 'blob' veya 'arrayBuffer' ile SDK, JSON zarfını atlar ve işlevinizin gövdesini olduğu gibi döndürür. İşleviniz bir hata durumuyla yanıt veriyorsa, error.status bu durumdur ve error.message işlevinizin döndürdüğü metindir.

#
HTTP

3. HTTP üzerinden ham mod

X-Aurabase-Invoke-Mode: raw başlığını eklediğinizde platform, işlevinizin kendi yanıtını döndürür: durumu, content-type ve baytlar.

terminalbash
curl -i -X POST "$AURA_URL/v1/functions/export/invoke" \
  -H "apikey: $AURA_ANON_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Aurabase-Invoke-Mode: raw" \
  -d '{"path":"/csv"}' --output export.csv

Bu başlık olmadan yanıt her zaman bir zarfla birlikte 200 olur:

envelope.jsonjson
{
  "data": {
    "status": 200,
    "headers": { "content-type": "application/json" },
    "body": { "greeting": "Hello, Ada!" },
    "logs": [],
    "duration_ms": 74
  },
  "meta": null
}

Zarftaki body ayrıştırılmış JSON'dur, JSON değil UTF-8 olduğunda yanıtınızın metnidir veya gövde boş veya ikili olduğunda null.

Ham modda, işlevinizden gelen her yanıt x-aurabase-invoke-origin: function taşır. Bu olmadan bir yanıt ağ geçidinden veya çalışma zamanından gelir. SDK, kodunuz tarafından platform kesintisinden döndürülen bir 503'e bu şekilde bilgi verir.

#
Başlıklar

4. Hangi başlıklar hayatta kalır

Ham modda yanıt başlıklarınız filtrelenir çünkü bunlar platformun kendi kaynağından sunulur.

BaşlıkSonuç
content-typeTutuldu. Hiçbirini ayarlamazsanız varsayılan olarak application/octet-stream olur.
Özel başlıklar (x-custom-out, cache-control, …)Tutuldu.
set-cookieKaldırıldı. Bir işlev çerezleri ayarlayamaz.
access-control-*Kaldırıldı. CORS'a ağ geçidi tarafından karar verilir.
x-aura-*, x-internal-tokenKaldırıldı.
content-security-policy, strict-transport-security, x-content-type-optionsNe gönderirseniz gönderin, platform tarafından belirlenir.
content-length, transfer-encoding, connectionYeniden hesaplandı.

Komut dosyalarını (text/html, application/xhtml+xml, image/svg+xml, application/xml, text/xml) çalıştırabilen bir yanıt, korumalı alan oluşturma içerik güvenliği ilkesiyle sunulur. text/html değerini döndüren bir işlev için gerçek yanıt:

yanıt başlıklarıtext
content-type: text/html
content-security-policy: default-src 'none'; frame-ancestors 'none'; sandbox
x-content-type-options: nosniff

HTML'niz sunulur ancak projenizin kaynağına çerez, depolama veya komut dosyası erişimi olmadan sunulur. Gerçek bir web sayfasını barındırmak için Depolamayı veya kendi alanınızı kullanın.