Header, Cookie, dan Respons Kustom
Baca header dan cookie permintaan, tetapkan pada respons, lalu kembalikan jenis respons kustom seperti teks biasa, HTML, pengalihan, dan streaming dalam FastAPI.
Header, Cookie, dan Respons Kustom adalah pelajaran FastAPI Backend Development Bootcamp gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar FastAPI Backend Development Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus FastAPI Backend Development Bootcamp mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Beyond the JSON Body
Request and response handling involves more than the JSON body. Headers and cookies carry metadata like auth tokens, content negotiation, and sessions. FastAPI gives you typed access to both.
Reading a Header
Declare a parameter with Header to read an incoming header. FastAPI auto-converts user_agent to the User-Agent header name.
from fastapi import FastAPI, Header
app = FastAPI()
@app.get('/info')
async def info(user_agent: str = Header(default=None)):
return {'ua': user_agent}Reading Cookies
Use Cookie to read a named cookie, just like headers and query params.
from fastapi import Cookie
@app.get('/session')
async def session(session_id: str = Cookie(default=None)):
return {'session': session_id}Setting Headers on a Response
Inject a Response object to set headers while still returning normal data.
from fastapi import Response
@app.get('/items')
async def items(response: Response):
response.headers['X-Total-Count'] = '42'
return ['a', 'b']Setting Cookies
Call response.set_cookie to send a cookie back to the client. Add flags like httponly and secure for safety.
@app.post('/login')
async def login(response: Response):
response.set_cookie('session_id', 'abc123', httponly=True, secure=True)
return {'ok': True}Plain Text and HTML Responses
Return non-JSON content with specialized response classes.
from fastapi.responses import PlainTextResponse, HTMLResponse
@app.get('/text', response_class=PlainTextResponse)
async def text():
return 'hello'
@app.get('/page', response_class=HTMLResponse)
async def page():
return '<h1>Hi</h1>'Redirects
Send the client elsewhere with RedirectResponse. Choose the status code for permanent vs temporary redirects.
from fastapi.responses import RedirectResponse
@app.get('/old')
async def old():
return RedirectResponse(url='/new', status_code=301)Header Name Conversion
FastAPI converts underscores in parameter names to hyphens for headers. This pure example shows the same idea.
def to_header_name(param):
return '-'.join(w.capitalize() for w in param.split('_'))
print(to_header_name('user_agent'))
print(to_header_name('x_api_key'))Streaming Responses
For large or generated data, stream it with StreamingResponse so you do not buffer everything in memory.
from fastapi.responses import StreamingResponse
def rows():
for i in range(3):
yield f'row {i}\n'
@app.get('/export')
async def export():
return StreamingResponse(rows(), media_type='text/plain')Custom Status Codes
Set a default status for an operation with the status_code argument, or override per request via the injected Response.
from fastapi import status
@app.post('/items', status_code=status.HTTP_201_CREATED)
async def create():
return {'created': True}Security Notes
When setting auth cookies, prefer httponly=True (blocks JS access), secure=True (HTTPS only), and samesite to mitigate CSRF.
Quick Check
You declare x_api_key: str = Header(). Which incoming HTTP header does FastAPI map this to?
Recap
You handled the full request/response surface:
- Read headers and cookies with
HeaderandCookie. - Set headers and cookies via the injected
Response. - Returned plain text, HTML, redirects, and streaming responses.
- Applied secure cookie flags and custom status codes.
Belajar FastAPI Backend Development Bootcamp dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 21
- Pelajaran
- 84
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Header, Cookie, dan Respons Kustom” gratis?
Ya — teks lengkap “Header, Cookie, dan Respons Kustom” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus FastAPI Backend Development Bootcamp, upgrade ke CoddyKit PRO. Kursus FastAPI Backend Development Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Header, Cookie, dan Respons Kustom”?
Baca header dan cookie permintaan, tetapkan pada respons, lalu kembalikan jenis respons kustom seperti teks biasa, HTML, pengalihan, dan streaming dalam FastAPI. Kamu berlatih FastAPI Backend Development Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai FastAPI Backend Development Bootcamp?
Tidak diperlukan pengalaman sebelumnya. FastAPI Backend Development Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Header, Cookie, dan Respons Kustom” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran FastAPI Backend Development Bootcamp ini?
Ya. Setiap pelajaran FastAPI Backend Development Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Model Pydantic untuk Isi Permintaan
- Model Respons dan Kode Status
- Data Formulir dan Pengunggahan Berkas
- Header, Cookie, dan Respons Kustom