AgentSkillsCN

backend-core

语言无关的后端模式:API设计、认证、安全、数据库。 当设计API、实现认证、保护端点、建模数据时使用。 触发词:“api设计”、“rest api”、“graphql”、“认证”、“jwt”、“oauth”、“安全”、“owasp”、“数据库模式”、“迁移”、“sql”。

SKILL.md
--- frontmatter
name: backend-core
description: |
  Language-agnostic backend patterns: API design, authentication, security, databases.
  Use when: designing APIs, implementing auth, securing endpoints, modeling data.
  Triggers: "api design", "rest api", "graphql", "authentication", "jwt", "oauth",
  "security", "owasp", "database schema", "migrations", "sql".

Backend Core Patterns

Quick Reference

TopicWhen to UseReference
API DesignREST/GraphQL/gRPC endpointsapi-design.md
AuthenticationJWT, OAuth, sessions, magic linksauthentication.md
SecurityInput validation, OWASP, rate limitingsecurity.md
DatabasesSchema design, migrations, queriesdatabases.md

API Design Decision Tree

code
What type of API?
├─ Public API → REST + OpenAPI spec
├─ Internal microservices → gRPC (performance) or REST (simplicity)
├─ Real-time → WebSocket or SSE
└─ Complex queries → GraphQL

Auth Decision Tree

code
Auth method?
├─ SPA/Mobile → JWT (access + refresh tokens)
├─ Server-rendered → Session cookies
├─ Third-party login → OAuth 2.0 / OIDC
├─ Passwordless → Magic link (email) or WebAuthn
└─ API-to-API → API keys or mTLS

Security Essentials

Always:

  • Validate all inputs at boundaries
  • Use parameterized queries (never string concat SQL)
  • Hash passwords with bcrypt/argon2 (cost ≥ 10)
  • HTTPS everywhere, HSTS headers
  • Rate limit auth endpoints

Never:

  • Store secrets in code or git
  • Trust client-side validation alone
  • Log sensitive data (passwords, tokens, PII)
  • Use MD5/SHA1 for passwords

Database Patterns

code
Schema design:
├─ Start normalized (3NF)
├─ Denormalize only for proven bottlenecks
├─ Always have created_at, updated_at
├─ Use UUIDs for public IDs, integers for internal FKs
└─ Soft delete (deleted_at) for important data

Anti-patterns

Don'tDo Instead
N+1 queriesEager load / batch queries
SELECT *Select only needed columns
No indexes on WHERE/JOIN columnsAdd indexes
Storing files in DBUse object storage (S3, R2)
God objectsBounded contexts, single responsibility