# 🧪 API Test Playground
**Monorepo pro testování různých API služeb pomocí [Bruno](https://www.usebruno.com/) a Vibe agentů.**
Tento projekt slouží jako **playground** pro vývoj, testování a výuku API testování. Obsahuje backendové služby, frontendové aplikace a komplexní testovací kolekce.
---
## ⚠️ Důležité informace
> **🔒 Toto repozitář má jediného vlastníka (maintainera):** @LukasKanka
- **Testy v `main`/`master` větvi** jsou pouze **ukázkové** a slouží pro demonstraci funkčnosti
- **Repo je určeno pro lokální použití** – klonujte si ho, experimentujte, učte se
- **Pokud chcete přispět:** Postupujte podle [sekce Přispívání](#🤝-přispívání) – **nepushujte přímo do `main`/`master`**
- **Fork a vlastní větev:** Pokud chcete experimentovat bez přispívání, vytvořte si **fork** a pracujte ve své vlastní větvi
---
## 🗺️ Rozcestník
| Služba | Backend | Frontend | Testy | Dokumentace |
|--------|---------|----------|-------|--------------|
| **PotterAPI** | [`backends/potter-api`](./backends/potter-api) | [`backends/potter-api/frontend`](./backends/potter-api/frontend) | [`apiTest/PotterAPI`](./apiTest/PotterAPI) | [bruno_test_scenario.md](./backends/potter-api/bruno_test_scenario.md) |
| **JsonPlaceholder** | ❌ Veřejné API | ❌ | [`apiTest/JsonPlaceholder`](./apiTest/JsonPlaceholder) | - |
---
## 🚀 Rychlý start
### 1️⃣ Inicializace projektu
```bash
# Klonování repozitáře
git clone
cd api_test
# Instalace všech závislostí (využívá npm workspaces)
npm run setup
```
### 2️⃣ Spuštění backendů
```bash
# Spuštění všech backendů
npm run start:backends
# Nebo jednotlivě
npm run start:potter-api
```
Backend PotterAPI bude dostupný na **`http://localhost:3000`**.
### 3️⃣ Spuštění frontendů
```bash
# Spuštění PotterAPI frontend (Vue.js)
npm run start:potter-fe
```
Frontend bude dostupný na **`http://localhost:8080`**.
### 4️⃣ Spuštění testů
```bash
# Spuštění všech testů (vyžaduje běžící backend pro PotterAPI)
npm run test:all
# Spuštění všech testů + spuštění backendu (automaticky)
npm run test:all:with-backend
# Spuštění pouze PotterAPI testů
npm run test:potter
# Spuštění testů s watch módem (automatické opakování)
npm run test:watch
```
> ⚠️ **Poznámka:** Testy pro **PotterAPI** vyžadují běžící backend na `localhost:3000`.
> Testy pro **JsonPlaceholder** fungují bez backendu (používají veřejné API).
> Použij `npm run test:all:with-backend` pro automatické spuštění backendu i testů.
---
## 📁 Struktura monorepa
```
api_test/
├── README.md # Tento soubor (rozcestník)
│
├── package.json # Root package.json (npm workspaces)
│
├── backends/ # Backendové služby
│ └── potter-api/ # PotterAPI
│ ├── app.js # Hlavní Express.js aplikace
│ ├── routes/ # API routy
│ ├── controllers/ # Kontrolery
│ ├── frontend/ # Frontend (Vue.js)
│ │ ├── public/ # Statické soubory
│ │ ├── src/ # Zdrojové kódy
│ │ └── package.json # Frontend závislosti
│ ├── bruno_test_scenario.md # Dokumentace pro Bruno
│ └── README.md # Dokumentace PotterAPI
│
├── apiTest/ # Testovací kolekce (Bruno)
│ └── PotterAPI/ # Testy pro PotterAPI
│ ├── GET/ # GET požadavky
│ ├── POST/ # POST požadavky
│ └── AI/ # AI-specifické testy
│
├── .github/ # GitHub konfigurace
│ └── workflows/ # CI/CD pipeline
│ └── api-tests.yml # Automativké testování
│
└── .vibe/ # Vibe agenti (budoucí)
└── agents/ # AI asistenti
```
---
## 🔧 Nástroje
### Bruno
**Moderní alternativa k Postmanu** – Open-source nástroj pro testování API.
- **GUI**: Otevřete `apiTest/` v Bruno aplikaci
- **CLI**: Použijte `npx @usebruno/cli run -r`
- **Dokumentace**: [usebruno.com](https://www.usebruno.com/)
### Vibe CLI
**AI asistent pro vývoj** – Pomáhá s psaním testů, dokumentací a delegací úkolů.
Mistral Vibe Code nabízí po registraci velmi vstřícný FREE tarif s podporou vibe-cli, nebo plán PRO za cca 450 Kč/měsíc či možnost nákupu samotných tokenů podle potřeby.
---
## 🤖 Vibe Agenti
| Agent | Účel | Vyvolání |
|-------|-------|----------|
| **API Test Assistant** | Pomoc s psaním a spouštěním API testů | `/api-tester` |
| **Bruno Expert** | Specialista na Bruno CLI a testovací scénáře | `/bruno-expert` |
| **Learning Guide** | Výuka API testování pro nováčky | `/learning-guide` |
---
## 📝 Pridávání nové API služby
Chcete přidat novou API službu? Postupujte takto:
### 1. Vytvořte backend
```bash
mkdir -p backends/
cd backends/
npm init -y
# Přidejte svůj backend kód
```
### 2. Vytvořte testy
```bash
mkdir -p apiTest/
# Přidejte Bruno testovací kolekce (.yml soubory)
```
### 3. Aktualizujte dokumentaci
- Přidejte řádek do tabulky v tomto README
- Vytvořte `backends//README.md`
- Případně vytvořte `backends//bruno_test_scenario.md`
### 4. Testujte
```bash
npm run test:all # Spustí všechny testy včetně nových
```
---
## 🔄 CI/CD Pipeline
**Automatické testování** při každém pushu na `main` nebo `master` větvi:
- ✅ Spuštění backendu
- ✅ Čekání na inicializaci serveru
- ✅ Spuštění všech Bruno testů
- ✅ Reportování výsledků
Soubor: [`.github/workflows/api-tests.yml`](./.github/workflows/api-tests.yml)
---
## 📄 Dokumentace
- [🤖 Využití Vibe agentů v tomto monorepu](./docs/USING_VIBE_AGENTS.md) - Popis jak vám Vibe agenti mohou pomoci
- [PotterAPI – Testovací scénáře](./backends/potter-api/bruno_test_scenario.md) – Detailní průvodce testováním PotterAPI
- [Průvodce vytvářením kolekcí](./docs/COLECTION_GUIDE.md) – Jak přidat novou testovací kolekci
- [Architektura monorepa](./docs/) – Další dokumentace
---
## 🤝 Přispívání
Chcete přispět do tohoto monorepa? Dodržujte následující postup:
### 📌 Zásady
- **❌ Zakázáno:** Přímý push do `main` nebo `master` větve
- **✅ Povoleno:** Vytváření nových větví a Pull Requestů
### 🚀 Postup
1. Forkněte repozitář
2. Vytvořte novou větev pro svou změnu:
```bash
git checkout -b feature/nova-funkce
# nebo
git checkout -b fix/oprava-chyby
```
3. Proveďte své změny a commitněte je:
```bash
git commit -m 'Přidána nová funkce'
```
4. Pushněte změny na svou větev:
```bash
git push origin feature/nova-funkce
```
5. Vytvořte **Pull Request** z vaší větve do `main`
6. Počkejte na review a schválení
### 📝 Pokyny pro Pull Request
- Napište jasný název a popis změny
- Odkazujte na příslušné issues (pokud existují)
- Udržujte commit zprávy čisté a popisné
---
## 📞 Podpora
- **Issues**: [GitHub Issues](https://github.com/kankys/api_test/issues)
- **Diskuse**: Použijte GitHub Discussions
---
## 🏆 Technologie
| Technologie | Účel |
|------------|-------|
| **Node.js** | Backend runtime |
| **Express.js** | Web framework pro PotterAPI |
| **Vue.js** | Frontend framework |
| **Bruno** | API testování |
| **npm Workspaces** | Správa monorepa |
| **GitHub Actions** | CI/CD |
---
## ⚖️ Licence a autorská práva
- **Zdrojový kód:** Tento projekt staví na open-source základech. Původní licence zachováváme v příslušných složkách.
- **Obsah a ochranné známky:** Veškerá práva k tématice, postavám a názvům ze světa Harryho Pottera patří J. K. Rowling a Warner Bros. Projekt slouží výhradně pro nekomerční vzdělávací účely.