# weatherapi

`weatherapi` is a read-only HTTP API for weather data already stored by
`weatherfeeder` in PostgreSQL. It exposes the latest observations, current
conditions, alerts, forecasts, discussions, weather stories, and convective
outlooks as JSON, XML, or text.

## Quickstart

The service needs a reachable Postgres database with weatherfeeder-owned tables
and the configured text template directory.

```sh
go run ./cmd/weatherapi -config config.yml
```

The checked-in `config.yml` is a local sample. For new deployments, start from
[`examples/config.minimal.yml`](examples/config.minimal.yml) or
[`examples/config.production.yml`](examples/config.production.yml) and provide
database credentials through your normal secret-management process.

## Endpoint Families

- Observations and current conditions
- Active alerts
- Hourly and narrative forecasts
- Forecast discussions
- Weather stories
- Convective outlooks:
  - `GET /outlooks/convective`
  - `GET /outlooks/convective/active`
  - `GET /outlooks/convective/location`

Common query parameters include `format`, `units`, and route-specific options
such as forecast `precision`, timezone `tz` / `TZ`, and outlook filters
`day`, `outlookType`, and `containsLocation`.

See [`docs/api.md`](docs/api.md) for the HTTP contract.

## Documentation

- [`docs/api.md`](docs/api.md): public HTTP API reference
- [`docs/cli.md`](docs/cli.md): command-line usage
- [`docs/config.md`](docs/config.md): YAML configuration reference
- [`docs/operations.md`](docs/operations.md): deployment and runtime operations
- [`docs/troubleshooting.md`](docs/troubleshooting.md): symptom-oriented fixes
- [`examples/requests.http`](examples/requests.http): copyable requests for implemented endpoints
- [`docs/policy/architecture.md`](docs/policy/architecture.md): development architecture and invariants
- [`docs/policy/development.md`](docs/policy/development.md): contributor workflow and update checklists
