Dokumentasi API dengan Swagger

From OnnoWiki
Revision as of 19:17, 7 April 2025 by Onnowpurbo (talk | contribs)
Jump to navigation Jump to search

Oke Dzaq! Di bawah ini adalah panduan lengkap untuk membuat **modul dokumentasi API dengan Swagger** di **Ubuntu 24.04**. Kita akan pakai **FastAPI + Swagger UI** karena simpel dan cocok buat dokumentasi REST API secara otomatis.

---

    1. 🧩 1. **Install Python dan pip**

Ubuntu 24.04 biasanya udah include Python 3. Tapi kita pastikan dulu:

```bash sudo apt update sudo apt install python3 python3-pip -y ```

---

    1. 📦 2. **Buat Virtual Environment (opsional tapi disarankan)**

```bash sudo apt install python3-venv -y python3 -m venv venv source venv/bin/activate ```

---

    1. 🔧 3. **Install FastAPI dan Uvicorn**

```bash pip install fastapi uvicorn ```

---

    1. 📁 4. **Buat File Project: `main.py`**

```python

  1. main.py

from fastapi import FastAPI from pydantic import BaseModel

app = FastAPI(title="Swagger API - Metro TV", version="1.0")

  1. Contoh Model

class Item(BaseModel):

   name: str
   price: float
   is_offer: bool = None
  1. Route dasar

@app.get("/") def read_root():

   return {"message": "Hello, Metro TV"}
  1. Route dengan parameter

@app.get("/items/{item_id}") def read_item(item_id: int, q: str = None):

   return {"item_id": item_id, "q": q}
  1. POST endpoint

@app.post("/items/") def create_item(item: Item):

   return {"item": item}

```

---

    1. 🚀 5. **Jalankan API**

```bash uvicorn main:app --reload ```

---

    1. 🌐 6. **Akses Swagger UI**

Setelah dijalankan, buka browser dan kunjungi:

``` http://127.0.0.1:8000/docs ```

Swagger UI akan otomatis tampil dan mendokumentasikan semua endpoint.

---

    1. 📝 7. **Akses Redoc (Alternatif UI)**

``` http://127.0.0.1:8000/redoc ```

---

    1. 🧾 8. **Export Dokumentasi ke JSON atau YAML**

Kalau kamu butuh file dokumentasi:

      1. 🔹 JSON:

``` http://127.0.0.1:8000/openapi.json ```

      1. 🔹 YAML (butuh converter, contoh pakai `json2yaml`):

```bash pip install json2yaml curl http://127.0.0.1:8000/openapi.json | json2yaml > openapi.yaml ```

---

Kalau kamu mau integrasi Swagger manual (misalnya pakai Flask atau Express.js), tinggal bilang aja. Tapi buat sekarang, **FastAPI udah auto generate Swagger** tanpa ribet coding dokumentasi manual.

Mau ku buatin template project-nya sekalian dalam folder ZIP? Atau mau lanjut integrasi auth/token dan semacamnya?