Cleanup outlook endpoints and completed roadmap documentation
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful
This commit is contained in:
63
docs/api.md
63
docs/api.md
@@ -234,7 +234,6 @@ GET /alerts/active?format=text
|
||||
```http
|
||||
GET /outlooks/convective
|
||||
GET /outlooks/convective/active
|
||||
GET /outlooks/convective/location
|
||||
```
|
||||
|
||||
Returns the latest SPC convective outlook run reconstructed from
|
||||
@@ -246,9 +245,6 @@ Route behavior:
|
||||
outlook polygons unless user filters are supplied.
|
||||
- `/outlooks/convective/active` adds an active-time filter using the server's
|
||||
current UTC time. Outlooks are active when `validFrom <= now < validTo`.
|
||||
- `/outlooks/convective/location` adds the same active-time filter and
|
||||
`containsLocation=true`. It remains as an active local-outlook compatibility
|
||||
route under the v2 weatherfeeder contract.
|
||||
|
||||
When no latest run exists, `data` is null. When a run exists but filters match
|
||||
no outlooks, `data` remains an object and `outlooks` and `discussions` are
|
||||
@@ -262,14 +258,10 @@ Query parameters:
|
||||
| `format`, `units`, `tz` / `TZ` | all outlook routes | shared rules above |
|
||||
| `day` | all outlook routes | `1`, `2`, or `3` |
|
||||
| `outlookType` | all outlook routes | `categorical`, `tornado`, `hail`, or `wind` |
|
||||
| `containsLocation` | `/outlooks/convective`, `/outlooks/convective/active` | boolean |
|
||||
|
||||
`outlookType` values are normalized case-insensitively. Weatherfeeder v2
|
||||
outlooks are already filtered for the configured location, so
|
||||
`containsLocation` is expected to be true for stored v2 outlooks.
|
||||
`containsLocation` is rejected on `/outlooks/convective/location` because that
|
||||
route always applies `containsLocation=true`. `precision` and unknown
|
||||
parameters are rejected.
|
||||
outlooks are already filtered for the configured location. `precision`,
|
||||
`containsLocation`, and unknown parameters are rejected.
|
||||
|
||||
Run `data` fields:
|
||||
|
||||
@@ -314,7 +306,7 @@ Examples:
|
||||
|
||||
```http
|
||||
GET /outlooks/convective?day=1&outlookType=categorical
|
||||
GET /outlooks/convective/location?format=text&tz=CDT
|
||||
GET /outlooks/convective/active?format=text&tz=CDT
|
||||
```
|
||||
|
||||
Example JSON response:
|
||||
@@ -367,53 +359,8 @@ Example JSON response:
|
||||
}
|
||||
```
|
||||
|
||||
Example location-filtered JSON response:
|
||||
|
||||
```json
|
||||
{
|
||||
"data": {
|
||||
"locationId": "stl",
|
||||
"asOf": "2026-06-11T18:00:00Z",
|
||||
"outlooks": [
|
||||
{
|
||||
"id": "spc-day1-tor-2pct",
|
||||
"provider": "spc",
|
||||
"product": "convective",
|
||||
"day": 1,
|
||||
"outlookType": "tornado",
|
||||
"label": "2%",
|
||||
"validFrom": "2026-06-11T18:00:00Z",
|
||||
"validTo": "2026-06-12T12:00:00Z",
|
||||
"issuedAt": "2026-06-11T17:00:00Z",
|
||||
"expiresAt": "2026-06-12T12:00:00Z",
|
||||
"containsLocation": true,
|
||||
"geometry": {
|
||||
"type": "Polygon",
|
||||
"coordinates": [
|
||||
[
|
||||
[-90.6, 38.4],
|
||||
[-90.0, 38.4],
|
||||
[-90.0, 38.8],
|
||||
[-90.6, 38.4]
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"discussions": [
|
||||
{
|
||||
"day": 1,
|
||||
"headline": "Tornado risk near the configured location",
|
||||
"discussion": "SPC tornado outlook discussion text.",
|
||||
"updatedAt": "2026-06-11T17:30:00Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Text format uses the shared convective outlook template for all three outlook
|
||||
routes and renders a no-data message when `data` is null.
|
||||
Text format uses the shared convective outlook template for both outlook routes
|
||||
and renders a no-data message when `data` is null.
|
||||
|
||||
### Forecasts
|
||||
|
||||
|
||||
Reference in New Issue
Block a user