5.7 KiB
5.7 KiB
🔌 Swagger UI Guide
Readur includes built-in Swagger UI for interactive API documentation and testing. Access it easily through your user profile menu.
Accessing Swagger UI
- Login to Readur - Authenticate with your user credentials
- Click Your Profile - Click on your profile avatar in the top-right corner
- Select "API Documentation" - Choose the Swagger UI option from the dropdown menu
- Interactive Documentation - Explore and test all available API endpoints
API Documentation Features
Endpoint Explorer
- Complete API Reference - All REST endpoints with detailed descriptions
- Request/Response Examples - Sample data for every endpoint
- Parameter Details - Required and optional parameters with types
- Authentication Info - JWT token requirements and usage
Interactive Testing
- Try It Out - Execute API calls directly from the documentation
- Real Data - Test with your actual Readur data and configuration
- Response Validation - See actual responses and status codes
- Error Handling - View error responses and troubleshooting info
API Categories
Authentication
- Login/Logout - User authentication endpoints
- Token Management - JWT token refresh and validation
- User Registration - New user account creation
- Password Reset - Password recovery workflows
Document Management
- Upload Documents - Single and batch file upload endpoints
- Document Retrieval - Get document metadata and content
- Document Search - Full-text search with various modes
- Document Operations - Update, delete, and organize documents
User Management
- User CRUD - Create, read, update, delete user accounts
- Role Management - Assign and modify user roles
- Permission Control - Manage access rights and restrictions
- User Preferences - Personal settings and configurations
Source Management
- Source Configuration - WebDAV, S3, and local folder setup
- Sync Operations - Manual and automated synchronization
- Source Health - Status monitoring and health checks
- Source Statistics - Usage metrics and performance data
System Administration
- Health Monitoring - System status and performance metrics
- Analytics Data - Usage statistics and reporting endpoints
- Configuration - System settings and environment variables
- Maintenance - Backup, cleanup, and administrative tasks
Authentication in Swagger UI
Using JWT Tokens
- Login via API - Use
/api/auth/loginendpoint to get a JWT token - Copy Token - Copy the returned JWT token
- Authorize - Click the "Authorize" button in Swagger UI
- Enter Token - Paste your JWT token in the format:
Bearer your_token_here - Test Endpoints - All authenticated endpoints now work with your credentials
Token Management
- Token Expiry - Tokens expire after a configured time period
- Refresh Tokens - Use refresh token endpoint to get new access tokens
- Logout - Invalidate tokens using the logout endpoint
- Multiple Sessions - Each browser session needs its own token
Best Practices
Development Usage
- Test First - Use Swagger UI to test API endpoints before implementing
- Validate Responses - Check response formats match your expectations
- Error Scenarios - Test error conditions and edge cases
- Performance Testing - Monitor response times for optimization
Production Considerations
- Access Control - Swagger UI respects the same authentication as the main app
- Rate Limiting - API rate limits apply to Swagger UI requests
- Logging - All API calls from Swagger UI are logged normally
- Security - Use HTTPS in production for secure token transmission
Common Use Cases
Frontend Development
- API Integration - Test endpoints before implementing in your frontend
- Data Formats - Understand expected request/response formats
- Error Handling - Learn about error codes and messages
- Feature Testing - Validate new features work as expected
System Integration
- Third-party Tools - Test integration with external systems
- Automation Scripts - Develop scripts using API documentation
- Monitoring Systems - Integrate health check endpoints
- Data Migration - Use bulk operations for data import/export
Troubleshooting
- Debug Issues - Test API calls to isolate problems
- Validate Permissions - Check if user roles have correct access
- Network Testing - Verify connectivity and response times
- Data Verification - Confirm data integrity and processing status
Advanced Features
Custom Headers
- Request Customization - Add custom headers to API requests
- Content-Type - Specify different content types for uploads
- User-Agent - Set custom user agent strings
- Cache Control - Control caching behavior for responses
Bulk Operations
- Batch Uploads - Test multiple file uploads simultaneously
- Bulk Updates - Update multiple documents or users at once
- Mass Operations - Perform administrative tasks in bulk
- Data Export - Export large datasets via API
Configuration Options
Administrators can configure Swagger UI access:
# Enable/disable Swagger UI
SWAGGER_UI_ENABLED=true
# Customize Swagger UI path
SWAGGER_UI_PATH=/docs
# Authentication requirements
SWAGGER_REQUIRE_AUTH=true
# Rate limiting for API documentation
SWAGGER_RATE_LIMIT=1000
Security Considerations
- Authentication Required - Swagger UI requires the same login as the main application
- Role-Based Access - API endpoints respect user role permissions
- Audit Logging - All API calls are logged for security monitoring
- Token Security - JWT tokens should be kept secure and not shared