Add README
This commit is contained in:
parent
cd72a98d70
commit
16e2532b47
76
README.md
Normal file
76
README.md
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
# Products API
|
||||||
|
|
||||||
|
Tugas Web Service Lab 03: Contract-First API Design.
|
||||||
|
|
||||||
|
## Struktur Project
|
||||||
|
|
||||||
|
```
|
||||||
|
.
|
||||||
|
├── openapi.yaml # Kontrak API (OpenAPI 3.0.3)
|
||||||
|
├── app.py # Backend Flask
|
||||||
|
├── requirements.txt # Dependencies
|
||||||
|
└── .env.example # Template DATABASE_URL
|
||||||
|
```
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
1. Install dependencies:
|
||||||
|
```
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Buat file `.env`:
|
||||||
|
```
|
||||||
|
copy .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Isi `.env` dengan connection string Neon:
|
||||||
|
```
|
||||||
|
DATABASE_URL=postgresql://user:pass@host/neondb?sslmode=require
|
||||||
|
```
|
||||||
|
|
||||||
|
## Jalankan Backend
|
||||||
|
|
||||||
|
```
|
||||||
|
python -m flask --app app --env-file .env run
|
||||||
|
```
|
||||||
|
|
||||||
|
Server berjalan di `http://localhost:5000`.
|
||||||
|
|
||||||
|
## Endpoint
|
||||||
|
|
||||||
|
| Method | Path | Fungsi |
|
||||||
|
|--------|-----------------------|---------------------|
|
||||||
|
| GET | /products | Ambil semua produk |
|
||||||
|
| GET | /products/{id} | Ambil satu produk |
|
||||||
|
| POST | /products | Tambah produk baru |
|
||||||
|
| DELETE | /products/{id} | Hapus produk |
|
||||||
|
|
||||||
|
## Test dengan curl
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Ambil semua produk
|
||||||
|
curl http://localhost:5000/products
|
||||||
|
|
||||||
|
# Ambil satu produk
|
||||||
|
curl http://localhost:5000/products/1
|
||||||
|
|
||||||
|
# Tambah produk baru
|
||||||
|
curl -X POST http://localhost:5000/products \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"name":"Monitor","price":1500000,"stock":5}'
|
||||||
|
|
||||||
|
# Hapus produk
|
||||||
|
curl -X DELETE http://localhost:5000/products/4
|
||||||
|
```
|
||||||
|
|
||||||
|
## Database
|
||||||
|
|
||||||
|
Menggunakan PostgreSQL Neon. Tabel `products` sudah tersedia dengan struktur:
|
||||||
|
|
||||||
|
| Field | Tipe |
|
||||||
|
|--------|--------------|
|
||||||
|
| id | integer (PK) |
|
||||||
|
| name | varchar(100) |
|
||||||
|
| price | numeric(12,2)|
|
||||||
|
| stock | integer |
|
||||||
Loading…
x
Reference in New Issue
Block a user