farwew commited on
Commit
0a542d1
·
verified ·
1 Parent(s): f3770b0

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -0
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI, HTTPException
2
+ from fastapi.middleware.cors import CORSMiddleware
3
+ from pydantic import BaseModel
4
+ from typing import List, Optional
5
+ import uuid
6
+
7
+ app = FastAPI()
8
+
9
+ # Enable CORS
10
+ app.add_middleware(
11
+ CORSMiddleware,
12
+ allow_origins=["*"], # Untuk production, ganti dengan domain frontend Anda
13
+ allow_credentials=True,
14
+ allow_methods=["*"],
15
+ allow_headers=["*"],
16
+ )
17
+
18
+ # Model data mahasiswa
19
+ class Mahasiswa(BaseModel):
20
+ id: Optional[str] = None
21
+ nama: str
22
+ alamat: str
23
+ jenis_kelamin: str
24
+ prodi: str
25
+
26
+ # Database sementara (in-memory)
27
+ mahasiswa_db = []
28
+
29
+ # Endpoint untuk mendapatkan semua data mahasiswa
30
+ @app.get("/mahasiswa", response_model=List[Mahasiswa])
31
+ async def get_all_mahasiswa():
32
+ return mahasiswa_db
33
+
34
+ # Endpoint untuk mendapatkan mahasiswa berdasarkan ID
35
+ @app.get("/mahasiswa/{mahasiswa_id}", response_model=Mahasiswa)
36
+ async def get_mahasiswa(mahasiswa_id: str):
37
+ for mahasiswa in mahasiswa_db:
38
+ if mahasiswa.id == mahasiswa_id:
39
+ return mahasiswa
40
+ raise HTTPException(status_code=404, detail="Mahasiswa tidak ditemukan")
41
+
42
+ # Endpoint untuk menambahkan mahasiswa baru
43
+ @app.post("/mahasiswa", response_model=Mahasiswa)
44
+ async def create_mahasiswa(mahasiswa: Mahasiswa):
45
+ mahasiswa.id = str(uuid.uuid4())
46
+ mahasiswa_db.append(mahasiswa)
47
+ return mahasiswa
48
+
49
+ # Endpoint untuk mengupdate data mahasiswa
50
+ @app.put("/mahasiswa/{mahasiswa_id}", response_model=Mahasiswa)
51
+ async def update_mahasiswa(mahasiswa_id: str, updated_mahasiswa: Mahasiswa):
52
+ for i, mahasiswa in enumerate(mahasiswa_db):
53
+ if mahasiswa.id == mahasiswa_id:
54
+ updated_mahasiswa.id = mahasiswa_id
55
+ mahasiswa_db[i] = updated_mahasiswa
56
+ return updated_mahasiswa
57
+ raise HTTPException(status_code=404, detail="Mahasiswa tidak ditemukan")
58
+
59
+ # Endpoint untuk menghapus data mahasiswa
60
+ @app.delete("/mahasiswa/{mahasiswa_id}")
61
+ async def delete_mahasiswa(mahasiswa_id: str):
62
+ for i, mahasiswa in enumerate(mahasiswa_db):
63
+ if mahasiswa.id == mahasiswa_id:
64
+ del mahasiswa_db[i]
65
+ return {"message": "Mahasiswa berhasil dihapus"}
66
+ raise HTTPException(status_code=404, detail="Mahasiswa tidak ditemukan")
67
+
68
+ # Root endpoint
69
+ @app.get("/")
70
+ async def root():
71
+ return {"message": "API Pendaftaran Mahasiswa"}