- Updated COMPLETE_DOCUMENTATION.md feature descriptions - Updated user journey reference from 'ebook library' to 'ebook collection' - Updated all frontend page titles and headers - Updated Bruno API collection and workspace names - All references now consistently use 'Bookmann' as the application name
1.9 KiB
1.9 KiB
Bruno API Tests for Bookmann
This directory contains Bruno collection for testing the Bookmann 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