Monolith Controller and View Development
Use this skill when
- •Creating request handlers in
app/controllers/. - •Generating or editing templates in
app/views/.
Fast start
- •Controller scaffold:
make generator controller widgets index show - •Full CRUD controller/views:
make generator controller widgets all
REST action mapping
- •
Index→GET /resources - •
Show→GET /resources/{id} - •
New→GET /resources/new - •
Create→POST /resources - •
Edit→GET /resources/{id}/edit - •
Update→PUT/PATCH /resources/{id} - •
Destroy→DELETE /resources/{id}
Rendering pattern
Use views.Render(w, "template_name.html.tmpl", data).
Templates are pre-parsed at startup by views.InitTemplates(...).
Template naming convention
Generators produce files like:
- •
app/views/widgets/widgets_index.html.tmpl - •
app/views/widgets/widgets_show.html.tmpl - •
app/views/widgets/widgets_new.html.tmpl - •
app/views/widgets/widgets_edit.html.tmpl
Implementation checklist
- •Parse path params with
r.PathValue("id")for ID routes. - •Load/save model data via
db.GetDB()+ model helpers. - •Render template or redirect as appropriate.
- •Register route in
app/routes/routes.go(generator does this when actions are provided). - •Add/adjust controller tests.