Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

fastify-routes快速调整路线

Agent Skill

fastify-routes 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

188

周安装

8

GitHub Stars

公开资料未说明

下载量

66
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:fastify-routes(快速调整路线)
来源仓库:https://github.com/janisto/fastify-playground
仓库路径:skills/fastify-routes
安装命令:
npx skills add https://github.com/janisto/fastify-playground --skill fastify-routes
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/janisto/fastify-playground --skill fastify-routes

简介

fastify-routes 提供 Fastify 路由开发的模式和模板,支持 TypeBox 验证与 OpenAPI 文档生成。

  • 适用于在 Codex、Claude、Cursor、Gemini CLI 中快速搭建类型安全的 Fastify API 服务。
  • 通过标准目录结构和插件函数导出方式组织代码,自动生成接口描述和校验规则。
  • 安装前需确认项目是否已集成 Fastify 及 @fastify/type-provider-typebox,避免依赖冲突。
  • 建议结合具体业务场景选择路由模板,并检查生成的 OpenAPI 文档是否符合预期。

SKILL.md

Fastify Route Development

This skill provides patterns for creating Fastify routes with TypeBox validation and OpenAPI documentation.

Directory Structure

Routes are located in app/src/routes/. Each route file exports a default async function that registers routes on a Fastify instance.

Route Template

import { type FastifyPluginAsyncTypebox, Type } from "@fastify/type-provider-typebox";
import { ErrorModelSchema } from "../schemas/index.js";

const routes: FastifyPluginAsyncTypebox = async (fastify) => {
  fastify.get(
    "/endpoint",
    {
      schema: {
        description: "Endpoint description for OpenAPI docs",
        tags: ["tag-name"],
        summary: "Short summary",
        querystring: Type.Object({
          param: Type.String({ description: "Query parameter" }),
        }),
        response: {
          200: Type.Object({
            status: Type.Literal("ok"),
            data: Type.String({ description: "Response data" }),
          }),
          422: ErrorModelSchema,
          500: ErrorModelSchema,
        },
      },
    },
    async (request, reply) => {
      const { param } = request.query;
      return { status: "ok", data: param };
    },
  );
};

export default routes;

OpenAPI Schema Requirements

  1. Always include schema: Every route handler must have a schema property
  2. Description and summary: Required for OpenAPI documentation
  3. Tags: Group related endpoints
  4. Response codes: Document all possible response status codes
  5. Error responses: Use ErrorModelSchema from schemas/index.js for error status codes (400, 404, 422, 500, 503)
  6. TypeBox types: Use Type from @fastify/type-provider-typebox
  7. Schema discoverability: Only schemas referenced in route definitions appear in OpenAPI components.schemas

Authentication

For protected routes, use the fastify.authenticate preHandler:

import { ErrorModelSchema } from "../schemas/index.js";

fastify.get(
  "/protected",
  {
    preHandler: [fastify.authenticate],
    schema: {
      description: "Protected endpoint requiring authentication",
      tags: ["protected"],
      response: {
        200: Type.Object({ userId: Type.String() }),
        401: ErrorModelSchema,
        500: ErrorModelSchema,
      },
    },
  },
  async (request) => {
    return { userId: request.user.uid };
  },
);

HTTP Methods

Use appropriate HTTP methods:

  • GET - Read operations
  • POST - Create operations
  • PUT - Full update operations
  • PATCH - Partial update operations
  • DELETE - Delete operations

Error Handling

Use @fastify/sensible HTTP error helpers:

// Throw errors
throw fastify.httpErrors.notFound("Resource not found");
throw fastify.httpErrors.badRequest("Invalid input");

// Reply methods
reply.notFound("Resource not found");
reply.badRequest("Invalid input");

Existing Routes

  • routes/health.ts - Simple liveness probe at /health (returns {status: "healthy"})
  • routes/schemas.ts - Schema discovery at /schemas/:schemaId
  • routes/v1.ts - V1 API router that registers versioned modules under /v1
  • modules/hello/routes.ts - Greeting endpoint at /v1/hello (GET and POST)
  • modules/items/routes.ts - Items collection at /v1/items with cursor-based pagination and category filtering

Testing Requirements

Each route must have a corresponding test file in app/tests/unit/. Routes in src/routes/ have tests in tests/unit/routes/, and module routes in src/modules/ have tests in tests/unit/modules/.

Commands

cd app
npm run build       # Build and verify TypeScript compilation
npm run check       # Run Biome linter and formatter
npm run test        # Run all tests

Boundaries

  • Do not create routes without TypeBox schemas
  • Do not skip OpenAPI documentation (description, tags, summary)
  • Always add corresponding unit tests for new routes

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

38.61%
按下载量换算25

Claude

30.09%
按下载量换算20

Cursor

19.22%
按下载量换算13

Gemini CLI

9.11%
按下载量换算6

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills