Re-upload: CI infrastructure issue resolved, all tests verified passing
This commit is contained in:
160
http_log_explorer/README.md
Normal file
160
http_log_explorer/README.md
Normal file
@@ -0,0 +1,160 @@
|
||||
# HTTP Log Explorer
|
||||
|
||||
A powerful CLI tool for parsing, exploring, and analyzing HTTP traffic logs from HAR files, curl -v output, and Chrome DevTools network exports.
|
||||
|
||||
## Features
|
||||
|
||||
- **Multi-format parsing**: HAR files, curl -v verbose output, and Chrome DevTools network exports
|
||||
- **Interactive CLI**: Rich terminal UI with beautifully formatted tables
|
||||
- **Advanced filtering**: Filter by method, status code, URL pattern, content type
|
||||
- **Request/Response diffing**: Side-by-side comparison of HTTP pairs
|
||||
- **API analytics**: Endpoint frequency, method distribution, status code breakdown, response time statistics
|
||||
- **OpenAPI generation**: Automatically generate OpenAPI 3.0 specs from observed traffic
|
||||
- **Export capabilities**: JSON, cURL commands, Python/JavaScript/Go code snippets
|
||||
|
||||
## Installation
|
||||
|
||||
### From Source
|
||||
|
||||
```bash
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
### Dependencies
|
||||
|
||||
```
|
||||
click==8.1.7
|
||||
rich==13.7.0
|
||||
haralyzer==2.0.0
|
||||
pytest==8.0.0
|
||||
openapi-spec-validator==0.7.1
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Load a HAR file and show statistics
|
||||
http-log-explorer load access.har --stats
|
||||
|
||||
# List entries with filters
|
||||
http-log-explorer list-entries --method GET --status 200
|
||||
|
||||
# Search across URLs and bodies
|
||||
http-log-explorer search "api/users"
|
||||
|
||||
# Compare two requests
|
||||
http-log-explorer diff entry-1 entry-2
|
||||
|
||||
# Export to OpenAPI spec
|
||||
http-log-explorer export-openapi api-spec.json --title "My API"
|
||||
|
||||
# Export as cURL commands
|
||||
http-log-explorer export-curl commands.sh
|
||||
|
||||
# Export as Python code
|
||||
http-log-explorer export-code client.py --language python
|
||||
```
|
||||
|
||||
## Commands
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `load FILE` | Load and parse an HTTP log file |
|
||||
| `list-entries` | List entries with optional filtering |
|
||||
| `search QUERY` | Search across URLs and bodies |
|
||||
| `diff ID1 ID2` | Compare two entries by ID |
|
||||
| `stats` | Show traffic statistics |
|
||||
| `filter-entries` | Filter entries and show results |
|
||||
| `export-json FILE` | Export entries to JSON |
|
||||
| `export-curl FILE` | Export as cURL commands |
|
||||
| `export-code FILE` | Export as code snippets |
|
||||
| `export-openapi FILE` | Generate OpenAPI spec |
|
||||
|
||||
## Filtering Options
|
||||
|
||||
```bash
|
||||
# Filter by HTTP method
|
||||
http-log-explorer list-entries --method GET --method POST
|
||||
|
||||
# Filter by status code
|
||||
http-log-explorer list-entries --status 200 --status 404
|
||||
|
||||
# Filter by URL pattern (regex)
|
||||
http-log-explorer list-entries --url "/api/users"
|
||||
|
||||
# Filter by content type
|
||||
http-log-explorer list-entries --content-type application/json
|
||||
```
|
||||
|
||||
## Supported Formats
|
||||
|
||||
### HAR Files (HTTP Archive)
|
||||
|
||||
Export from browser DevTools or capture with tools like Wireshark.
|
||||
|
||||
### curl -v Output
|
||||
|
||||
Paste output from `curl -v` or `curl --verbose`.
|
||||
|
||||
### Chrome DevTools Network Export
|
||||
|
||||
Export network requests from Chrome DevTools.
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `HTTP_LOG_DEBUG=true` - Enable verbose output
|
||||
|
||||
## Examples
|
||||
|
||||
### Analyzing API Traffic
|
||||
|
||||
```bash
|
||||
# Load traffic data
|
||||
http-log-explorer load api_traffic.har
|
||||
|
||||
# See overall statistics
|
||||
http-log-explorer stats
|
||||
|
||||
# Find all 4xx errors
|
||||
http-log-explorer list-entries --status 404 --status 400
|
||||
|
||||
# Search for specific endpoints
|
||||
http-log-explorer search "/users"
|
||||
```
|
||||
|
||||
### Generating API Documentation
|
||||
|
||||
```bash
|
||||
# Load traffic and export OpenAPI spec
|
||||
http-log-explorer load api.har
|
||||
http-log-explorer export-openapi openapi.json --title "User API" --version "2.0"
|
||||
```
|
||||
|
||||
### Exporting to Code
|
||||
|
||||
```bash
|
||||
# Export as Python requests
|
||||
http-log-explorer load api.har
|
||||
http-log-explorer export-code client.py --language python
|
||||
|
||||
# Export as JavaScript/Node.js
|
||||
http-log-explorer export-code client.js --language javascript
|
||||
|
||||
# Export as Go
|
||||
http-log-explorer export-code client.go --language go
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT License - see LICENSE file for details
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions welcome! Please ensure tests pass before submitting PRs.
|
||||
|
||||
```bash
|
||||
pytest tests/ -v
|
||||
ruff check http_log_explorer/
|
||||
```
|
||||
Reference in New Issue
Block a user