NAME

WWW::Bund::Registry - API registry and endpoint catalog

VERSION

version 0.001

SYNOPSIS

use WWW::Bund::Registry;

my $registry = WWW::Bund::Registry->new(
    registry_file  => 'share/registry.yml',
    endpoints_file => 'share/endpoints.yml',
);

# List all APIs
my $all = $registry->list;
my $traffic = $registry->list(tag => 'traffic');
my $public = $registry->list(auth => 'none');

# Search APIs
my $results = $registry->search('autobahn');

# Get API info
my $info = $registry->info('autobahn');

# Get endpoint
my $ep = $registry->endpoint('autobahn_roads');

# List endpoints for API
my $endpoints = $registry->endpoints_for_api('autobahn');

DESCRIPTION

Loads and indexes API and endpoint metadata from YAML files. The registry contains 31 APIs, and the endpoint catalog defines 78 endpoints across implemented APIs.

registry_file

Path to registry YAML file. Defaults to share/registry.yml from distribution.

endpoints_file

Path to endpoints YAML file. Defaults to share/endpoints.yml from distribution.

list

my $apis = $registry->list;
my $apis = $registry->list(tag => 'traffic');
my $apis = $registry->list(auth => 'none');

List all APIs, optionally filtered by tag or auth type. Returns ArrayRef of API metadata HashRefs (id, title, provider, auth, tags, etc.).

my $results = $registry->search('autobahn');

Search for APIs by substring match (case-insensitive) in ID, title, provider, or tags. Returns ArrayRef of matching APIs.

info

my $info = $registry->info('autobahn');

Get full metadata for an API by ID. Returns HashRef with id, title, provider, auth, tags, docs_url, spec_url, rate_limit, etc.

Throws exception if API not found.

endpoint

my $ep = $registry->endpoint('autobahn_roads');

Get endpoint metadata by name. Returns HashRef with name, api, base_url, path, method, cache_ttl, query_params, etc.

Throws exception if endpoint not found.

endpoints_for_api

my $endpoints = $registry->endpoints_for_api('autobahn');

List all endpoints belonging to an API. Returns ArrayRef of endpoint HashRefs.

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-www-bund/issues.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <torsten@raudssus.de>

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Torsten Raudssus.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.