Add your description here
Project description
OpenAPI Scanner
A tool for scanning and testing OpenAPI specifications.
Features
- Support for both JSON and YAML OpenAPI specifications
- Flexible authentication system
- Automatic path parameter replacement
- Custom header support
- Multiple report formats (Console, HTML, CSV, JSONL)
Installation
# Install dependencies
pip install -r requirements.txt
# Install in development mode
pip install -e .
Usage
Basic Usage
# Using JSON specification
python -m specphp_scanner spec.json --host localhost --port 8080
# Using YAML specification
python -m specphp_scanner spec.yaml --host localhost --port 8080
Using Authentication
# Using module path
python -m specphp_scanner spec.json --auth-class examples.koel.auth.KoelAuth --auth-params '{"email": "user@example.com", "password": "secret"}'
# Using file path
python -m specphp_scanner spec.json --auth-class ./examples/koel/auth.py --auth-params '{"email": "user@example.com", "password": "secret"}'
Using Custom Headers
python -m specphp_scanner spec.json --headers '{"X-Custom-Header": "value"}'
Generating Reports
# Console output (default)
python -m specphp_scanner spec.json
# HTML report
python -m specphp_scanner spec.json --format html --output report.html
# CSV report
python -m specphp_scanner spec.json --format csv --output report.csv
# JSONL report
python -m specphp_scanner spec.json --format jsonl --output report.jsonl
Command Line Options
spec_file: Path to OpenAPI specification file (JSON or YAML)--host: Target host (default: localhost)--port: Target port (default: 8080)--auth-class: Authentication class path or Python file path--auth-params: JSON string containing authentication parameters--headers: JSON string containing custom headers--format: Report format (console, html, csv, jsonl)--output: Output file path for the report--verbose,-v: Enable verbose logging
Creating Custom Authentication Classes
Create a class that inherits from BaseAuth:
from specphp_scanner.auth.base import BaseAuth
class MyCustomAuth(BaseAuth):
def __init__(self, **kwargs):
# Initialize your authentication parameters
self.token = None
def authenticate(self):
# Implement your authentication logic
# This method should be called before making API requests
pass
def get_headers(self):
# Return headers required for authentication
return {"Authorization": f"Bearer {self.token}"}
def get_cookies(self):
# Return cookies required for authentication
return {}
Examples
See the examples directory for sample implementations.
Project Structure
specphp_scanner/
├── __init__.py
├── cli.py
├── scanner.py
├── auth/
│ ├── __init__.py
│ ├── base.py
│ └── factory.py
└── utils/
├── __init__.py
├── param_generator.py
├── report.py
└── templates/
└── report.html
Running Tests
pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
specphp_scanner-0.0.3.tar.gz
(12.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file specphp_scanner-0.0.3.tar.gz.
File metadata
- Download URL: specphp_scanner-0.0.3.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf22062a9d5e648b97c506fa30444d5e443c21f457169667335c9636d3919cc7
|
|
| MD5 |
f8fb4ac3a64bf720f96a5e11258f1935
|
|
| BLAKE2b-256 |
649d6424ce03d52bc3c6b3ed79160a8e0d25e35ae37c3e4c0b435a659731b368
|
File details
Details for the file specphp_scanner-0.0.3-py3-none-any.whl.
File metadata
- Download URL: specphp_scanner-0.0.3-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a406a479029d9a1fa6c73034b8c2b3ae1009fca68983e46a0f14636f8acb6517
|
|
| MD5 |
0dc32d5d0503241ec79920d1eeefd0d5
|
|
| BLAKE2b-256 |
8d9cc25d4822d80cefe86ba65d90935a1de3bd14228ed94f82982c46eb48b60b
|