AgentSkillsCN

monolith-controller-and-view-development

适用于构建 HTTP 控制器与模板时使用,包括 REST 行动脚手架、视图渲染模式,以及路由连接。

SKILL.md
--- frontmatter
name: monolith-controller-and-view-development
description: Use when building HTTP controllers and templates, including REST action scaffolding, view rendering patterns, and route wiring.

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

  • IndexGET /resources
  • ShowGET /resources/{id}
  • NewGET /resources/new
  • CreatePOST /resources
  • EditGET /resources/{id}/edit
  • UpdatePUT/PATCH /resources/{id}
  • DestroyDELETE /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

  1. Parse path params with r.PathValue("id") for ID routes.
  2. Load/save model data via db.GetDB() + model helpers.
  3. Render template or redirect as appropriate.
  4. Register route in app/routes/routes.go (generator does this when actions are provided).
  5. Add/adjust controller tests.