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