# 🔌 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 1. **Login to Readur** - Authenticate with your user credentials 2. **Click Your Profile** - Click on your profile avatar in the top-right corner 3. **Select "API Documentation"** - Choose the Swagger UI option from the dropdown menu 4. **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 1. **Login via API** - Use `/api/auth/login` endpoint to get a JWT token 2. **Copy Token** - Copy the returned JWT token 3. **Authorize** - Click the "Authorize" button in Swagger UI 4. **Enter Token** - Paste your JWT token in the format: `Bearer your_token_here` 5. **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: ```env # 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