Swaggerific is an open-source UI for HTTP utilities, specifically designed for calling Swagger/REST functions and displaying results. The project aims to provide a comprehensive, user-friendly interface for API testing and interaction, with a focus on Swagger/OpenAPI integration.
To become the best open-source UI for HTTP utilities, offering a modern, feature-rich alternative to commercial API testing tools with seamless Swagger/OpenAPI integration.
-
Swagger/OpenAPI Integration
- Support for both Swagger 2.0 and OpenAPI 3.0 formats
- Automatic parsing and display of API endpoints in a tree view
- Extraction of API paths, methods, parameters, and other details
-
HTTP Request Handling
- Support for all HTTP methods (GET, POST, PUT, DELETE, etc.)
- Request parameter handling via form fields or JSON editor
- Custom header management
- Response formatting and display (JSON/XML)
-
User Interface
- Modern JavaFX UI with responsive design
- Tree view of endpoints for easy navigation
- Tab-based interface for handling multiple API requests
- Dockable debug console
- Syntax highlighting for request and response bodies
- Auto-completion for brackets and quotes in the JSON editor
-
Pre-Request Scripts
- JavaScript execution environment using GraalVM
- Postman-like API with
pmobject for scripting - Variable management (
pm.variables.get()andpm.variables.set()) - Header modification (
pm.request.headers) - HTTP requests within scripts (
pm.sendRequest()) - Console logging (
console.log(),console.warn(),console.error()) - Variables persistence between script executions
-
Proxy Support
- System proxy integration
- Custom proxy configuration
- Proxy authentication
- Bypass rules for specific hosts
-
Session Management
- Persistence of tree structure between sessions
- Authorization settings storage
- Window position and size memory
-
Customization
- Keyboard shortcuts customization
- Font size and family selection
- UI component visibility toggles (tree, filter, status bar)
-
Runtime Environment
- Java Development Kit (JDK) 21 or higher
- JavaFX (included in the distribution)
- GraalVM integration for JavaScript execution
-
Distribution
- Cross-platform run scripts
- Maven-based distribution packaging
- GitHub Actions for automated builds and releases
-
Enhanced Authentication
- OAuth 2.0 flow support
- Added OAuth2Service class for handling OAuth 2.0 authentication flows
- Implemented support for Authorization Code, Client Credentials, Password, and Refresh Token flows
- Added UI for configuring OAuth 2.0 settings
- Added token caching to avoid unnecessary token requests
- JWT token handling
- API key management
- OAuth 2.0 flow support
-
Request Collections
- Save and organize requests in collections
- Import/export collections
- Share collections between team members
-
Environment Variables
- Define multiple environments (dev, staging, production)
- Switch between environments easily
- Environment-specific variables
-
Response Testing
- Assertions for response validation
- Test scripts (similar to pre-request scripts but for response validation)
- Test results display
-
Mock Server
- Create mock responses based on OpenAPI definitions
- Customizable response templates
- Delay and error simulation
-
Performance Testing
- Run multiple requests in parallel
- Measure and display response times
- Generate performance reports
-
Collaboration Features
- Team workspaces
- Shared environments and variables
- Comments and documentation
-
Enhanced UI
- Dark mode support
- Customizable themes
- Split view for request and response
-
API Documentation
- Generate documentation from OpenAPI definitions
- Interactive documentation with request examples
- Export documentation to various formats
-
API Monitoring
- Schedule API health checks
- Alerts for API failures
- Performance monitoring over time
-
Integration with CI/CD
- Run API tests as part of CI/CD pipelines
- Generate test reports for CI/CD systems
- Automate API testing in development workflows
-
Plugin System
- Extend functionality with plugins
- Community-contributed plugins
- Custom request and response processors
- Implement environment variables support
- Added Environment and EnvironmentVariable classes
- Created UI for managing environments and variables
- Integrated with pre-request scripts via pm.environment API
- Added variable substitution in requests (URL, parameters, headers, body)
- Stabilize and enhance the pre-request scripts feature
- Improve cross-platform compatibility
- Enhance GraalVM integration for better JavaScript support
- Enhanced JavaScript API with additional methods and properties
- Implemented better error handling with line numbers and stack traces
- Added support for JavaScript Promises
- Added utility methods for JSON, string operations, and Base64 encoding/decoding
- Enhanced console object with more methods (info, debug, trace, assert, table)
- Fix known issues and improve error handling
- Implement request collections
- Add environment variables support
- Enhance authentication mechanisms
- Improve test capabilities
- Develop mock server functionality
- Add performance testing capabilities
- Implement collaboration features
- Enhance UI with additional themes and customization options
Swaggerific welcomes contributions from the community. Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated. Please see the CONTRIBUTING.md file for guidelines on how to contribute.
If you have suggestions for new features or improvements, please open an issue on the GitHub repository.