0Pricing
Python Academy · Pelajaran

Penyiapan Proyek FastAPI dan Endpoint Pertama

Instal FastAPI, buat proyek, dan tulis endpoint GET pertama Anda.

Penyiapan Proyek FastAPI dan Endpoint Pertama adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Apa Itu FastAPI?

FastAPI adalah kerangka kerja web Python modern untuk membangun API REST. FastAPI menyediakan dokumentasi OpenAPI otomatis, model permintaan/respons yang diperiksa tipenya melalui Pydantic, serta performa bawaan async.

# pip install fastapi uvicorn
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello, FastAPI"}

Menjalankan Server

Jalankan dengan uvicorn. Opsi --reload memulai ulang server secara otomatis saat kode berubah selama pengembangan.

# main.py
from fastapi import FastAPI
app = FastAPI()

@app.get("/health")
def health(): return {"status": "ok"}

# Terminal:
# uvicorn main:app --reload
# → http://127.0.0.1:8000
# → http://127.0.0.1:8000/docs  (Swagger UI)

Metode HTTP

Hiasi fungsi rute dengan @app.get, @app.post, @app.put, @app.delete, atau @app.patch.

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(): return []

@app.post("/items")
def create_item(): return {"id": 1}

@app.delete("/items/{item_id}")
def delete_item(item_id: int): return {"deleted": item_id}

Parameter Jalur

Deklarasikan parameter jalur dalam string rute dengan {name} dan sebagai argumen fungsi dengan anotasi tipe.

from fastapi import FastAPI
app = FastAPI()

@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"user_id": user_id, "name": "Alice"}

# GET /users/42  → {"user_id": 42, "name": "Alice"}

Parameter Kueri

Parameter fungsi yang tidak terdapat dalam jalur akan menjadi parameter kueri.

from fastapi import FastAPI
app = FastAPI()

@app.get("/items")
def list_items(skip: int = 0, limit: int = 10, q: str | None = None):
    return {"skip": skip, "limit": limit, "q": q}

# GET /items?skip=5&limit=20&q=search

Isi Permintaan Pydantic

Gunakan BaseModel Pydantic sebagai tipe parameter untuk mendeklarasikan dan memvalidasi isi permintaan JSON.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float
    in_stock: bool = True

@app.post("/items")
def create_item(item: Item):
    return {"received": item.model_dump()}

Kesalahan Validasi Pydantic

Jika isi permintaan tidak sesuai dengan skema, FastAPI secara otomatis mengembalikan 422 Entitas Tidak Dapat Diproses dengan pesan kesalahan yang mendetail.

# POST /items with body {"name": 123}
# → HTTP 422 Unprocessable Entity
# {
#   "detail": [
#     {
#       "type": "string_type",
#       "loc": ["body","name"],
#       "msg": "Input should be a valid string"
#     }
#   ]
# }

Model Respons

Gunakan response_model= untuk mendeklarasikan keluaran titik akhir. FastAPI memvalidasi respons dan menyaring bidang tambahan.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class UserOut(BaseModel):
    id: int
    name: str

@app.get("/users/{uid}", response_model=UserOut)
def get_user(uid: int):
    return {"id": uid, "name": "Alice", "password": "secret"}  # password filtered out

Kode Status

Tetapkan kode status keberhasilan bawaan dengan status_code=. Impor kode umum dari fastapi.status.

from fastapi import FastAPI, status
app = FastAPI()

@app.post("/items", status_code=status.HTTP_201_CREATED)
def create_item():
    return {"id": 1}

# HTTP 201 Created is returned on success

HTTPException

Gunakan HTTPException untuk mengembalikan respons kesalahan dengan kode status khusus dan pesan detail.

from fastapi import FastAPI, HTTPException
app = FastAPI()

fake_db = {1: "Alice"}

@app.get("/users/{uid}")
def get_user(uid: int):
    if uid not in fake_db:
        raise HTTPException(status_code=404, detail="User not found")
    return {"name": fake_db[uid]}

Dokumentasi Otomatis

FastAPI secara otomatis membuat Swagger UI di /docs dan ReDoc di /redoc berdasarkan anotasi rute Anda.

# After starting with uvicorn:
# http://localhost:8000/docs     — Swagger UI (try the API live)
# http://localhost:8000/redoc    — ReDoc (clean docs view)
# http://localhost:8000/openapi.json  — raw OpenAPI schema

Pemeriksaan Singkat

Bagaimana cara mendeklarasikan parameter isi permintaan JSON yang wajib di FastAPI?

Ringkasan

Rute FastAPI adalah fungsi yang dihiasi: parameter jalur berada di URL, parameter kueri berupa argumen bertipe, dan isi permintaan berupa model Pydantic. Gunakan HTTPException untuk kesalahan. Swagger UI dibuat secara otomatis di /docs.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penyiapan Proyek FastAPI dan Endpoint Pertama” gratis?

Ya — teks lengkap “Penyiapan Proyek FastAPI dan Endpoint Pertama” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Penyiapan Proyek FastAPI dan Endpoint Pertama”?

Instal FastAPI, buat proyek, dan tulis endpoint GET pertama Anda. Kamu berlatih Python Academy 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 Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy 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 1 dari 4.

Berapa lama pelajaran “Penyiapan Proyek FastAPI dan Endpoint Pertama” 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 Python Academy ini?

Ya. Setiap pelajaran Python Academy 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

  1. Penyiapan Proyek FastAPI dan Endpoint Pertama
  2. Parameter Jalur, Parameter Kueri, dan Body Permintaan
  3. Injeksi Dependensi dan Autentikasi
  4. Endpoint Asinkron dan Integrasi Database
← Kembali ke Python Academy