| name | add-adminapi-endpoint |
| description | Add a group of Admin REST endpoints in the management backend (TR-F012). Use when a feature needs management APIs such as create/read/update/delete. |
Skill: Add Admin REST Endpoints
Feature ID: TR-F012 | Milestone: M2 and others
When to use
When adding a group of REST endpoints to the management backend.
Pre-research
view internal/adminapi/adminapi.go # Init() registration entry
view internal/adminapi/nodes.go # standard CRUD reference
view internal/adminapi/helpers.go # parsePagination / filter helpers
view internal/adminapi/responses.go # unified responses
view internal/adminapi/authz.go # requireAdmin() and other authz
Implementation steps
- New file
internal/adminapi/<feature>.go, package adminapi.
- Request structs: define the payload with
validate tags (reference nodePayload).
- register function:
func register<Feature>Routes() {
webserver.ApiGET("/<path>", list<Feature>)
webserver.ApiPOST("/<path>", create<Feature>, requireAdmin())
webserver.ApiPUT("/<path>/:id", update<Feature>, requireAdmin())
webserver.ApiDELETE("/<path>/:id", delete<Feature>, requireAdmin())
}
- Register in Init: add
register<Feature>Routes() to Init() in adminapi.go.
- Data access: always use
app.GDB(); never inject *gorm.DB.
- Shared conventions: reuse pagination, filtering, validation, authz, unified responses, and error handling.
Acceptance