Changes for version 0.001 - 2026-02-13
- Initial release with comprehensive German Federal Government API support
- APIs & Endpoints:
- 15 public APIs with 76 endpoints implemented: Autobahn, NINA, Pegel-Online, Tagesschau, Bundestag, DWD, Feiertage, SMARD, Bundeshaushalt, Bundesrat, Bundestag Lobbyregister, Dashboard Deutschland, Travelwarning, Eco-Visio, Hilfsmittel
- Ladestationen API disabled (requires authentication since 2026)
- Fixed endpoint definitions: Bundeshaushalt query params, Bundesrat view param, Hilfsmittel base URL, Eco-Visio path params
- Multi-Language Support:
- 7 languages: German, English, French, Spanish, Italian, Dutch, Polish
- 665 YAML templates (95 templates × 7 languages)
- 7 localized bin commands: bund, bunden, bundfr, bundes, bundit, bundnl, bundpl
- Language-specific strings with sprintf support
- CLI Architecture:
- Modern MooX::Cmd + MooX::Options architecture
- Shared Role::APICommand for generic API dispatch
- 18 CLI command classes (List, Info, + 16 API commands)
- Automatic help generation from MooX::Options
- Comprehensive POD documentation in all 7 bin scripts
- Output & Formatting:
- Template-based formatting: table, list, record types
- JSON and YAML output modes
- Custom template support via --template flag
- Dotted-path field access in templates
- Core Features:
- GET response caching with XDG-compliant paths
- Per-endpoint TTLs (120s-86400s based on data freshness)
- Per-API rate limiting support
- Pluggable HTTP transport (LWP default, MockIO for tests)
- XML and JSON response parsing with UTF-8 handling
- Optional typed API adapter classes with convenience methods
- Documentation:
- Comprehensive POD in all 42 lib modules (2,112 lines)
- Inline =attr and =method POD for PodWeaver
- Complete README.md with live CLI examples and API roadmap
- CLAUDE.md with architecture details and best practices
- Testing:
- 290 tests across 10 test files, all passing
- Unit tests for all components
- CLI subprocess tests
- Optional live integration tests (WWW_BUND_LIVE_TEST=1)
- 72.5% code coverage
Documentation
CLI client for German Federal Government APIs (bund.dev)
CLI client for German Federal Government APIs (English)
CLI client for German Federal Government APIs (Spanish)
CLI client for German Federal Government APIs (French)
CLI client for German Federal Government APIs (Italian)
CLI client for German Federal Government APIs (Dutch)
CLI client for German Federal Government APIs (Polish)
Modules
Perl client for German Federal Government APIs (bund.dev)
Adapter for Autobahn API (roadworks, webcams, closures, charging stations)
Adapter for Bundestag API (parliament data)
Adapter for DWD API (weather data)
Adapter for NINA API (disaster warnings)
Adapter for Pegel-Online API (water levels)
Adapter for Tagesschau API (news)
Authentication management for Bund APIs
CLI client for German Federal Government APIs
Autobahn App API commands
Bundeshaushalt API command
Bundesrat API command
Bundestag API commands
Bundestag Lobbyregister API command
Dashboard Deutschland API command
DWD Weather API commands
Eco-Visio (Fahrrad-Zähler) API command
Feiertage API command
Hilfsmittel (GKV Hilfsmittelverzeichnis) API command
Show detailed API information
Ladestationen (Ladesaeulenregister) API command
List all available APIs
NINA Warn-App API commands
Pegel Online API commands
SMARD (Strommarktdaten) API command
Tagesschau API commands
Travelwarning (Reisewarnungen) API command
Template-based output formatter for bund CLI
Shared role for API command dispatch
Localized string provider for bund CLI
GET response caching on disk
Generic API call engine
Transport-independent HTTP request object
Transport-independent HTTP response object
Synchronous HTTP backend using LWP::UserAgent
Per-API rate limiting with sliding window
API registry and endpoint catalog
JSON response — parses content to Perl data structure
Raw response — returns content as-is
XML response — parses content to Perl data structure via XML::Twig
Interface role for pluggable HTTP backends
Role for typed API response objects