| from fastapi import FastAPI, HTTPException |
| from fastapi.middleware.cors import CORSMiddleware |
| from pydantic import BaseModel |
| from typing import List, Optional |
| import uuid |
|
|
| app = FastAPI() |
|
|
| |
| app.add_middleware( |
| CORSMiddleware, |
| allow_origins=["*"], |
| allow_credentials=True, |
| allow_methods=["*"], |
| allow_headers=["*"], |
| ) |
|
|
| |
| class Mahasiswa(BaseModel): |
| id: Optional[str] = None |
| nama: str |
| alamat: str |
| jenis_kelamin: str |
| prodi: str |
|
|
| |
| mahasiswa_db = [] |
|
|
| |
| @app.get("/mahasiswa", response_model=List[Mahasiswa]) |
| async def get_all_mahasiswa(): |
| return mahasiswa_db |
|
|
| |
| @app.get("/mahasiswa/{mahasiswa_id}", response_model=Mahasiswa) |
| async def get_mahasiswa(mahasiswa_id: str): |
| for mahasiswa in mahasiswa_db: |
| if mahasiswa.id == mahasiswa_id: |
| return mahasiswa |
| raise HTTPException(status_code=404, detail="Mahasiswa tidak ditemukan") |
|
|
| |
| @app.post("/mahasiswa", response_model=Mahasiswa) |
| async def create_mahasiswa(mahasiswa: Mahasiswa): |
| mahasiswa.id = str(uuid.uuid4()) |
| mahasiswa_db.append(mahasiswa) |
| return mahasiswa |
|
|
| |
| @app.put("/mahasiswa/{mahasiswa_id}", response_model=Mahasiswa) |
| async def update_mahasiswa(mahasiswa_id: str, updated_mahasiswa: Mahasiswa): |
| for i, mahasiswa in enumerate(mahasiswa_db): |
| if mahasiswa.id == mahasiswa_id: |
| updated_mahasiswa.id = mahasiswa_id |
| mahasiswa_db[i] = updated_mahasiswa |
| return updated_mahasiswa |
| raise HTTPException(status_code=404, detail="Mahasiswa tidak ditemukan") |
|
|
| |
| @app.delete("/mahasiswa/{mahasiswa_id}") |
| async def delete_mahasiswa(mahasiswa_id: str): |
| for i, mahasiswa in enumerate(mahasiswa_db): |
| if mahasiswa.id == mahasiswa_id: |
| del mahasiswa_db[i] |
| return {"message": "Mahasiswa berhasil dihapus"} |
| raise HTTPException(status_code=404, detail="Mahasiswa tidak ditemukan") |
|
|
| |
| @app.get("/") |
| async def root(): |
| return {"message": "API Pendaftaran Mahasiswa"} |
|
|