api-endpoint-pattern
1
总安装量
1
周安装量
#47422
全站排名
安装命令
npx skills add https://github.com/sjtw/tarkov-build-optimiser --skill api-endpoint-pattern
Agent 安装分布
amp
1
opencode
1
kimi-cli
1
codex
1
github-copilot
1
antigravity
1
Skill 文档
API Endpoint Pattern Skill
Use this skill when adding or modifying HTTP endpoints in the API.
Scope
- Creating new API endpoints
- Adding new domain routers
- Modifying handler logic
Router Structure
Main Router (internal/router/router.go)
Initializes Echo, sets up middleware, and groups routes by domain.
Sub-Routers (internal/router/[domain]/router.go)
Each domain has its own sub-router with a Bind function that receives an *echo.Group and dependencies.
func Bind(e *echo.Group, db *sql.DB) *echo.Group {
e.GET("/list", func(c echo.Context) error {
// handler logic
})
return e
}
Adding a New Endpoint
- If introducing a new domain, create
internal/router/[domain]/router.go. - Implement a
Bind(e *echo.Group, db *sql.DB) *echo.Groupfunction. - Register the sub-router in
internal/router/router.go:domainrouter.Bind(api.Group("/domain"), config.DB.Conn) - Implement data access logic in
internal/models/if needed.
Handler Guidelines
- Parameter Parsing: Use helper functions for complex query params (e.g., trader levels).
- Dependency Injection: Pass
*sql.DBintoBind, then into handlers. Avoid globals. - Response Handling:
- Success:
c.JSON(200, data)orc.String(200, "OK") - Error:
c.String(code, err.Error())â log significant errors with zerolog.
- Success:
- Business Logic: Keep handlers thin. Move complex logic to
internal/models/or other internal packages.
Conventions
- Use
e.Group()for logical route separation. - Use plural names for collections (
/items,/weapons). - Use query parameters for filtering and optional configuration.
- Prefer HTTP status constants for consistency, but be consistent either way.