A feature-rich API testing tool built with React and TypeScript.
- Request Builder: Support for GET, POST, PUT, DELETE, PATCH methods
- Response Viewer: Beautiful response display with syntax highlighting
- Collections: Organize and save your API requests
- Environment Variables: Manage different environments (Dev, Staging, Prod)
- Request History: Automatically saves your last 50 requests
- Import/Export: Share collections in JSON format
- React 18 with TypeScript
- Styled Components for styling
- Context API for state management
- Axios for HTTP requests
- localStorage for data persistence
- Jest + React Testing Library for unit tests
- Cypress for E2E tests
npm installnpm startThe application will open at http://localhost:3000
A dummy API server is included for testing:
cd test-server
npm install
npm startThe test server will run on http://localhost:3001
See test-server/README.md for available API endpoints.
# Unit tests
npm test
# Watch mode
npm run test:watch
# Coverage
npm run test:coverage
# Integration tests
npm run test:integration
# E2E tests
npm run test:e2eThis project uses GitHub Actions for continuous integration. On every pull request and commit to main, the following checks run automatically:
- Lint & Type Check: ESLint and TypeScript compiler checks
- Unit & Integration Tests: Jest tests with coverage reporting
- E2E Tests: Cypress tests in headless mode
- Build: Production build verification
You can view the workflow status in the Actions tab or by the badge at the top of this README.
src/
├── components/ # Reusable UI components
├── contexts/ # React Context providers
├── hooks/ # Custom React hooks
├── services/ # Business logic
├── utils/ # Helper functions
├── constants/ # App constants
├── types/ # TypeScript types
└── styles/ # Global styles & theme
-
Making a Request:
- Select HTTP method
- Enter URL
- Add headers, params, or body as needed
- Click Send
-
Saving Requests:
- Create a collection
- Add requests to collections
- Export collections for sharing
-
Using Variables:
- Create an environment
- Define variables like
{{baseUrl}} - Use them in your requests
MIT