HTTP路由源码索引
本清单从当前Controller装饰器静态提取,用于核对方法/路径及显式守卫;不是自动权限证明。Controller内checkAdmin/checkManage和Service的owner/share约束仍须查API契约。没有JWT守卫不等于可匿名写;家庭/组织旧路由可能返回410。
| 方法 | 路径 | 显式角色/守卫 | 后端src位置 |
|---|---|---|---|
| GET | /api/v1/ | 见Controller/Service行为 | app.controller.ts |
| POST | /api/v1/mqtt/access/authenticate | MqttCallbackGuard | gateways/mqtt/access/mqtt-access.controller.ts |
| POST | /api/v1/mqtt/access/authorize | MqttCallbackGuard | gateways/mqtt/access/mqtt-access.controller.ts |
| POST | /api/v1/mqtt/webhooks/status | 见Controller/Service行为 | gateways/mqtt/mqtt.controller.ts |
| GET | /api/v1/auth/captcha | 见Controller/Service行为 | modules/auth/auth.controller.ts |
| POST | /api/v1/auth/register | 见Controller/Service行为 | modules/auth/auth.controller.ts |
| POST | /api/v1/auth/login | 见Controller/Service行为 | modules/auth/auth.controller.ts |
| POST | /api/v1/auth/wx/miniapp/code-login | 见Controller/Service行为 | modules/auth/auth.controller.ts |
| POST | /api/v1/auth/wx/miniapp/phone-login | 见Controller/Service行为 | modules/auth/auth.controller.ts |
| DELETE | /api/v1/auth/logout | AuthGuard('jwt') | modules/auth/auth.controller.ts |
| POST | /api/v1/auth/refresh-token | 见Controller/Service行为 | modules/auth/auth.controller.ts |
| POST | /api/v1/device-shares/accept | AuthGuard('jwt') | modules/device/device-share.controller.ts |
| GET | /api/v1/device-shares/:deviceId | AuthGuard('jwt') | modules/device/device-share.controller.ts |
| POST | /api/v1/device-shares/:deviceId/invites | AuthGuard('jwt') | modules/device/device-share.controller.ts |
| DELETE | /api/v1/device-shares/:deviceId/invites/:inviteId | AuthGuard('jwt') | modules/device/device-share.controller.ts |
| DELETE | /api/v1/device-shares/:deviceId/recipients/:userId | AuthGuard('jwt') | modules/device/device-share.controller.ts |
| POST | /api/v1/device-shares/:deviceId/leave | AuthGuard('jwt') | modules/device/device-share.controller.ts |
| POST | /api/v1/devices | AuthGuard('jwt') | modules/device/device.controller.ts |
| GET | /api/v1/devices/stats | AuthGuard('jwt') | modules/device/device.controller.ts |
| GET | /api/v1/devices | AuthGuard('jwt') | modules/device/device.controller.ts |
| GET | /api/v1/devices/:id | AuthGuard('jwt') | modules/device/device.controller.ts |
| PATCH | /api/v1/devices/:id/family | AuthGuard('jwt') | modules/device/device.controller.ts |
| PUT | /api/v1/devices/:id | AuthGuard('jwt') | modules/device/device.controller.ts |
| PATCH | /api/v1/devices/:id/name | AuthGuard('jwt') | modules/device/device.controller.ts |
| POST | /api/v1/devices/:id/secret/reset | AuthGuard('jwt') | modules/device/device.controller.ts |
| DELETE | /api/v1/devices/:id | AuthGuard('jwt') | modules/device/device.controller.ts |
| POST | /api/v1/devices/:id/control | AuthGuard('jwt') | modules/device/device.controller.ts |
| GET | /api/v1/devices/:id/logs | AuthGuard('jwt') | modules/device/device.controller.ts |
| GET | /api/v1/devices/:id/telemetry | AuthGuard('jwt') | modules/device/device.controller.ts |
| POST | /api/v1/device-claims/devices/:id/unbind | AuthGuard('jwt'),RolesGuard | modules/device-claim/device-claim.controller.ts |
| PUT | /api/v1/device-claims/devices/:id/setup-code | admin | modules/device-claim/device-claim.controller.ts |
| POST | /api/v1/device-claims/factory-identities | admin | modules/device-claim/device-claim.controller.ts |
| POST | /api/v1/device-claims | AuthGuard('jwt'),RolesGuard | modules/device-claim/device-claim.controller.ts |
| GET | /api/v1/device-claims/:claimId | AuthGuard('jwt'),RolesGuard | modules/device-claim/device-claim.controller.ts |
| GET | /api/v1/devices/:id/configuration | AuthGuard('jwt') | modules/device-operation/device-operation.controller.ts |
| PUT | /api/v1/devices/:id/configuration/:scope | AuthGuard('jwt') | modules/device-operation/device-operation.controller.ts |
| POST | /api/v1/devices/:id/services/:serviceId | AuthGuard('jwt') | modules/device-operation/device-operation.controller.ts |
| GET | /api/v1/devices/:id/services/results/:msgId | AuthGuard('jwt') | modules/device-operation/device-operation.controller.ts |
| POST | /api/v1/files | AuthGuard('jwt') | modules/file/file.controller.ts |
| POST | /api/v1/files/url | AuthGuard('jwt') | modules/file/file.controller.ts |
| DELETE | /api/v1/files | AuthGuard('jwt') | modules/file/file.controller.ts |
| GET | /api/v1/tools/esp32/firmware | AuthGuard('jwt') | modules/firmware/factory-firmware.controller.ts |
| GET | /api/v1/tools/esp32/firmware/:productId/:version/download-url | AuthGuard('jwt') | modules/firmware/factory-firmware.controller.ts |
| GET | /api/v1/firmware/versions | AuthGuard('jwt'),RolesGuard | modules/firmware/firmware.controller.ts |
| POST | /api/v1/firmware/upload | admin | modules/firmware/firmware.controller.ts |
| GET | /api/v1/firmware/:id | AuthGuard('jwt'),RolesGuard | modules/firmware/firmware.controller.ts |
| DELETE | /api/v1/firmware/:id | admin | modules/firmware/firmware.controller.ts |
| GET | /api/v1/organizations/:id/members | AuthGuard('jwt') | modules/organization/family.controller.ts |
| POST | /api/v1/organizations/:id/invites | AuthGuard('jwt') | modules/organization/family.controller.ts |
| DELETE | /api/v1/organizations/:id/invites/:inviteId | AuthGuard('jwt') | modules/organization/family.controller.ts |
| POST | /api/v1/organizations/invitations/accept | AuthGuard('jwt') | modules/organization/family.controller.ts |
| POST | /api/v1/organizations/:id/leave | AuthGuard('jwt') | modules/organization/family.controller.ts |
| DELETE | /api/v1/organizations/:id/members/:userId | AuthGuard('jwt') | modules/organization/family.controller.ts |
| POST | /api/v1/organizations | AuthGuard('jwt') | modules/organization/organization.controller.ts |
| GET | /api/v1/organizations | AuthGuard('jwt') | modules/organization/organization.controller.ts |
| GET | /api/v1/organizations/:id | AuthGuard('jwt') | modules/organization/organization.controller.ts |
| PUT | /api/v1/organizations/:id | AuthGuard('jwt') | modules/organization/organization.controller.ts |
| DELETE | /api/v1/organizations/:id | AuthGuard('jwt') | modules/organization/organization.controller.ts |
| GET | /api/v1/organizations/:orgId/rooms | AuthGuard('jwt') | modules/organization/organization.controller.ts |
| POST | /api/v1/organizations/:orgId/rooms | AuthGuard('jwt') | modules/organization/organization.controller.ts |
| DELETE | /api/v1/organizations/:orgId/rooms/:roomId | AuthGuard('jwt') | modules/organization/organization.controller.ts |
| POST | /api/v1/ota-tasks | AuthGuard('jwt') | modules/ota-task/ota-task.controller.ts |
| GET | /api/v1/ota-tasks | AuthGuard('jwt') | modules/ota-task/ota-task.controller.ts |
| POST | /api/v1/ota-tasks/:id/retry | AuthGuard('jwt') | modules/ota-task/ota-task.controller.ts |
| GET | /api/v1/ota-tasks/:id | AuthGuard('jwt') | modules/ota-task/ota-task.controller.ts |
| POST | /api/v1/permissions | admin | modules/permission/permission.controller.ts |
| GET | /api/v1/permissions | AuthGuard('jwt'),RolesGuard | modules/permission/permission.controller.ts |
| GET | /api/v1/permissions/tree | AuthGuard('jwt'),RolesGuard | modules/permission/permission.controller.ts |
| GET | /api/v1/permissions/:id | AuthGuard('jwt'),RolesGuard | modules/permission/permission.controller.ts |
| PUT | /api/v1/permissions/:id | admin | modules/permission/permission.controller.ts |
| DELETE | /api/v1/permissions/:id | admin | modules/permission/permission.controller.ts |
| POST | /api/v1/products | admin | modules/product/product.controller.ts |
| GET | /api/v1/products | AuthGuard('jwt'),RolesGuard | modules/product/product.controller.ts |
| GET | /api/v1/products/:id | AuthGuard('jwt'),RolesGuard | modules/product/product.controller.ts |
| GET | /api/v1/products/:id/thing-model | AuthGuard('jwt'),RolesGuard | modules/product/product.controller.ts |
| PUT | /api/v1/products/:id | admin | modules/product/product.controller.ts |
| DELETE | /api/v1/products/:id | admin | modules/product/product.controller.ts |
| GET | /api/v1/roles/options | AuthGuard('jwt'),RolesGuard | modules/role/role.controller.ts |
| POST | /api/v1/roles | admin | modules/role/role.controller.ts |
| GET | /api/v1/roles | AuthGuard('jwt'),RolesGuard | modules/role/role.controller.ts |
| GET | /api/v1/roles/:id/form | AuthGuard('jwt'),RolesGuard | modules/role/role.controller.ts |
| PUT | /api/v1/roles/:id | admin | modules/role/role.controller.ts |
| DELETE | /api/v1/roles/:id | admin | modules/role/role.controller.ts |
| GET | /api/v1/system/status | admin | modules/sys/sys.controller.ts |
| POST | /api/v1/system/status/email | admin | modules/sys/sys.controller.ts |
| GET | /api/v1/users/me | AuthGuard('jwt'),RolesGuard | modules/user/user.controller.ts |
| PUT | /api/v1/users/profile | AuthGuard('jwt'),RolesGuard | modules/user/user.controller.ts |
| PUT | /api/v1/users/password | AuthGuard('jwt'),RolesGuard | modules/user/user.controller.ts |
| GET | /api/v1/users | admin | modules/user/user.controller.ts |
| POST | /api/v1/users | admin | modules/user/user.controller.ts |
| GET | /api/v1/users/:id/form | admin | modules/user/user.controller.ts |
| PUT | /api/v1/users/:id | admin | modules/user/user.controller.ts |
| DELETE | /api/v1/users/:ids | admin | modules/user/user.controller.ts |
| PATCH | /api/v1/users/:id/status | admin | modules/user/user.controller.ts |
| PATCH | /api/v1/users/:id/password/reset | admin | modules/user/user.controller.ts |
