- Backend: Add server-side validation with go-playground/validator/v10 - Frontend: Add toast notifications for API errors with @zerodevx/svelte-toast - UI: Complete Tokyo Night theme redesign with modern animations - Docs: Update COMPLETE_DOCUMENTATION.md and README.md with all enhancements - Validation: Email format, password strength, and input sanitization - UX: Real-time error feedback, loading states, and responsive design
1.9 KiB
1.9 KiB
Bruno API Tests for Ebook Reader
This directory contains Bruno collection for testing the Ebook Reader API with comprehensive REST documentation.
Setup
- Install Bruno: https://www.usebruno.com/
- Open Bruno and import this collection folder
- Select the "localhost" environment
- Start the application with
docker-compose up --build - Register/Login first, then use Bearer token for protected endpoints
Available Tests
Auth (Public Endpoints)
- Register User: POST /api/auth/register - Create new account
- Login User: POST /api/auth/login - Authenticate (email or username)
- Get Profile: GET /api/auth/profile - Get user info (requires token)
Ebooks (Protected - JWT Required)
- List Ebooks: GET /api/ebooks - Paginated ebook list
- Get Ebook: GET /api/ebooks/:id - Single ebook details
- Create Ebook: POST /api/ebooks - Add new ebook
- Update Ebook: PUT /api/ebooks/:id - Modify ebook metadata
- Delete Ebook: DELETE /api/ebooks/:id - Remove ebook
Reading Progress (Protected - JWT Required)
- Get Reading Progress: GET /api/ebooks/:id/progress - User's progress
- Update Reading Progress: PUT /api/ebooks/:id/progress - Update progress
Documentation Features
Each request includes:
- Detailed descriptions of functionality
- Parameter specifications (required/optional, types)
- Request/Response examples
- Error response codes and meanings
- Authentication requirements
Notes
- Authentication Flow: Register → Login → Use Bearer token for all other requests
- JWT Tokens: Valid for 24 hours, include in
Authorization: Bearer <token>header - User Isolation: Progress and data are user-specific
- Variables: Update
ebook_idfor testing specific ebooks - Security: Passwords hashed with bcrypt, unique email/username constraints
- JSON: All requests/responses use JSON format