Add be9700-api: TP-Link BE9700 router API proxy + Scalar docs
This commit is contained in:
40
apps/be9700-api/metadata/description.md
Normal file
40
apps/be9700-api/metadata/description.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# BE9700 Router API
|
||||
|
||||
A stateless Node.js proxy and interactive API documentation server for the
|
||||
**TP-Link BE9700 WiFi 7** router.
|
||||
|
||||
## What it does
|
||||
|
||||
- Exposes the router's internal API as a clean, resource-oriented REST surface
|
||||
(`/api/*`) covering **203 endpoints** across wireless bands (2.4 GHz / 5 GHz /
|
||||
6 GHz), LAN/DHCP, NAT, UPnP, system time, and diagnostics.
|
||||
- Serves **interactive Scalar API docs** at `/docs` — explore and try every
|
||||
endpoint directly in the browser.
|
||||
- Returns the OpenAPI 3.1 specification at `/openapi.json` for use with any
|
||||
compatible tooling.
|
||||
- Health/status JSON at `/`.
|
||||
|
||||
## Stateless header-auth model
|
||||
|
||||
No router credentials are stored in the container or in Runtipi form fields.
|
||||
Every request to `/api/*` must carry:
|
||||
|
||||
| Header | Purpose |
|
||||
|--------|---------|
|
||||
| `X-Router-Host` | Router IP or hostname (e.g. `192.168.0.1`) |
|
||||
| `X-Router-Password` | Router admin password (for fresh sessions) |
|
||||
| `X-Router-Session` | Reuse a session token returned by a previous call (JSON) |
|
||||
|
||||
This means the container itself holds no secrets and is safe to expose via
|
||||
Traefik without any additional auth middleware — just use the API from clients
|
||||
that supply the headers.
|
||||
|
||||
## Quick start
|
||||
|
||||
Once installed, open the **Scalar docs** at `http://<your-server>:8347/docs`
|
||||
and authenticate each request with the `X-Router-Host` and
|
||||
`X-Router-Password` headers.
|
||||
|
||||
## Source
|
||||
|
||||
`https://git.alexzaw.dev/alexz/be9700-api`
|
||||
Reference in New Issue
Block a user