Skip to content

Repository files navigation

HTTP API Ninja 🥷

A powerful and modern HTTP client built with Flutter and Get_x_master - An alternative to Postman and Thunder Client

Flutter License Platform

📸 Screenshots

Gemini_Generated_Image_za912jza912jza91 Captureerere

✨ Key Features

🎯 Core Functionality

  • Complete HTTP Requests: Support for GET, POST, PUT, DELETE, PATCH
  • Collection Management: Organize requests in expandable collections
  • Advanced Request Builder: 6 tabs for precise configuration
    • Query Parameters
    • Headers
    • Authentication (Basic, Bearer Token, API Key)
    • Body (JSON, Form Data, Raw)
    • Tests
    • Pre-run Scripts
  • Comprehensive Response Area: 6 tabs for response analysis
    • Response Body with JSON syntax highlighting
    • Response Headers (Table view)
    • Cookies
    • Test Results
    • Documentation
    • Code Snippets (20+ programming languages)

🎨 User Interface

  • Modern Design: Inspired by Thunder Client
  • Dark/Light Theme: Easy switching between modes
  • Resizable Panels: Customize your workspace
  • Responsive & Smooth: Excellent user experience
  • Welcome Screen: Beautiful landing page with quick actions

🌍 Multi-language Support

  • English
  • Persian (فارسی)
  • Arabic (العربية)
  • German (Deutsch)
  • French (Français)

💾 Storage

  • Auto-save: All requests are automatically saved
  • Get_x_Storage: Fast and efficient storage
  • Request History: Full history with search, filter, and restore
  • Environment Storage: Save environments and variables

🌐 Environment Variables

  • Multiple Environments: Dev, Staging, Production
  • Global Variables: Shared across all environments
  • Variable Syntax: Use {{variable}} in URL, Headers, Query Params
  • Import/Export: JSON format support

📤 Export/Import

  • Professional Export: Export collections to JSON files with custom save location
  • File Picker Import: Import collections by selecting JSON files from system
  • Multiple Formats: Support for Postman v2.1 and HTTP API Ninja backup formats
  • Custom Filenames: Enter custom names for exported files

🎨 Advanced Features

  • Syntax Highlighting: JSON response with color coding
  • Line Numbers: Easy code navigation
  • Copy to Clipboard: One-click copy for responses and headers
  • Smart Notifications: Custom notification system
  • Error Handling: Robust error management with user-friendly messages

🚀 Quick Start

Prerequisites

Flutter SDK >= 3.0.0
Dart SDK >= 3.0.0

Installation

  1. Clone the repository:
git clone https://github.com/SwanFlutter/http_api_ninja.git
cd http_api_ninja
  1. Install dependencies:
flutter pub get
  1. Run the application:
# For Windows
flutter run -d windows

# For macOS
flutter run -d macos

# For Linux
flutter run -d linux

# For Web
flutter run -d chrome

📖 Usage Guide

Creating a New Collection

  1. Click the "New Collection" button
  2. Enter the collection name
  3. Click "Create"

Creating a New Request

  1. Click the "New Request" button
  2. Enter the request name
  3. Select the HTTP method
  4. Choose the target collection
  5. Click "Create"

Sending a Request

  1. Select a request from the sidebar
  2. Enter the URL
  3. Configure parameters, headers, and body
  4. Click the "Send" button

Sidebar Tabs

  • History: View and search request history with filters
  • Collections: Manage collections and requests (with rename support)
  • Env: Full environment variables management

🛠️ Technologies

  • Flutter: UI framework
  • GetX: State management and routing
  • GetX Storage: Local storage
  • HTTP: HTTP request handling
  • flutter_code_view: Syntax highlighting

� Main Deیpendencies

dependencies:
  flutter:
    sdk: flutter
  get_x_master: ^0.0.32
  get_x_storage: ^0.1.0
  flutter_code_view: ^0.0.5
  file_picker: ^8.1.6
  image_picker_master: ^0.0.4
  path_provider_master: ^1.0.0

🎨 Theming

The application uses an advanced theming system that includes:

  • Custom colors for dark and light modes
  • Optimized fonts
  • Smooth animations
  • Syntax highlighting themes (Dracula for dark, GitHub for light)

🌐 Internationalization

To add a new language:

  1. Create a new translation file in lib/I18n/
  2. Add the translation class to lib/I18n/translations.dart
  3. Add the language to LocaleController

🤝 Contributing

Contributions are always welcome! Please:

  1. Fork the project
  2. Create a new branch
  3. Commit your changes (human author only — no AI Co-authored-by trailers; see CONTRIBUTING.md)
  4. Push to your branch
  5. Create a Pull Request

For more details, read CONTRIBUTING.md.

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Contact

🗺️ Roadmap

Completed

  • Environment Variables ✅ (v1.1.0)
  • Request History ✅ (v1.1.0)
  • Rename Collections ✅ (v1.1.0)
  • Code Snippet Syntax Highlighting ✅ (v1.1.0)
  • Collection Base URL ✅ (v1.1.1)
  • Import Collections (curl, Postman, JSON, URL, Raw) ✅ (v1.1.2–v1.1.3)
  • Export Collection to JSON ✅ (v1.1.3)
  • Advanced {{variable}} system & body variables ✅ (v1.1.4)
  • Collection Base URL for nested folders & {{baseUrl}} priority ✅ (v1.1.4)
  • Resizable sidebar & response panels ✅ (v1.1.4)
  • Custom toast notifications ✅ (v1.1.4)
  • Professional export/import with file save dialog ✅ (v1.1.5)
  • File picker for import/export operations ✅ (v1.1.5)

Planned

  • WebSocket Support
  • GraphQL Support (full client)
  • Mock Server
  • Team Collaboration
  • Cloud Sync
  • Mobile Apps (Android & iOS)

🐛 Bug Reports

Found a bug? Please open an issue on GitHub with:

  • Flutter version
  • Operating system
  • Error message
  • Steps to reproduce
  • Relevant logs

💡 Features

Welcome Screen

  • Large logo (180x180 pixels)
  • Quick action cards
  • Dynamic theme support
  • Gradient background

Notification System

  • Custom notification banner
  • Color-coded by type (Success, Error, Info)
  • Auto-dismiss after 3 seconds
  • Manual close button

Response Display

  • JSON syntax highlighting with line numbers
  • Headers displayed in table format
  • Copy buttons for easy clipboard access
  • Selectable text

Error Handling

  • Null response handling
  • 30-second timeout
  • User-friendly error messages
  • Network error detection

Built with Flutter 💙

For Persian documentation, see README_FA.md

About

No description, website, or topics provided.

Resources

Contributing

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages