laravel-api

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Laravel API Development

Laravel API 开发

Agent Workflow (MANDATORY)

Agent 工作流(强制要求)

Before ANY implementation, use
TeamCreate
to spawn 3 agents:
  1. fuse-ai-pilot:explore-codebase - Analyze existing API patterns
  2. fuse-ai-pilot:research-expert - Verify Laravel API docs via Context7
  3. mcp__context7__query-docs - Check API Resources and Sanctum patterns
After implementation, run fuse-ai-pilot:sniper for validation.

在进行任何实现之前,使用
TeamCreate
生成3个Agent:
  1. fuse-ai-pilot:explore-codebase - 分析现有API模式
  2. fuse-ai-pilot:research-expert - 通过Context7验证Laravel API文档
  3. mcp__context7__query-docs - 检查API Resources和Sanctum模式
实现完成后,运行fuse-ai-pilot:sniper进行验证。

Overview

概述

Build RESTful APIs with Laravel using API Resources for response transformation and Sanctum for authentication.
ComponentPurpose
ControllersHandle requests, delegate to services
Form RequestsValidate input, authorize actions
API ResourcesTransform models to JSON
MiddlewareAuth, rate limiting, CORS
RoutesVersioned endpoints with groups
PaginationOffset/cursor pagination
HTTP ClientConsume external APIs

使用Laravel构建RESTful API,借助API Resources实现响应转换,通过Sanctum完成认证。
组件用途
控制器处理请求,将任务委托给服务层
表单请求验证输入,授权操作
API Resources将模型转换为JSON
中间件认证、速率限制、跨域资源共享
路由带分组的版本化端点
分页偏移量/游标分页
HTTP客户端调用外部API

Critical Rules

核心规则

  1. Always use API Resources - Never return Eloquent models directly
  2. Versioned routes - Prefix with
    /v1/
    ,
    /v2/
  3. Validate all input - Use Form Requests, not inline validation
  4. Rate limiting - Configure per-route limits
  5. Consistent responses - Same structure, proper status codes
  6. Use services - Keep controllers thin
  7. Eager load - Prevent N+1 with
    with()
    before pagination

  1. 始终使用API Resources - 切勿直接返回Eloquent模型
  2. 版本化路由 - 以
    /v1/
    /v2/
    作为前缀
  3. 验证所有输入 - 使用表单请求,而非内联验证
  4. 速率限制 - 按路由配置限制
  5. 统一响应格式 - 保持结构一致,使用正确的状态码
  6. 使用服务层 - 保持控制器轻量化
  7. 预加载关联 - 在分页前使用
    with()
    避免N+1查询问题

Reference Guide

参考指南

Core Concepts

核心概念

TopicReferenceWhen to consult
Routingrouting.mdDefining versioned API routes
Controllerscontrollers.mdController patterns, resource methods
Middlewaremiddleware.mdRoute protection, request filtering
Validationvalidation.mdForm Requests, validation rules
主题参考文档适用场景
路由routing.md定义版本化API路由
控制器controllers.md控制器模式、资源方法
中间件middleware.md路由保护、请求过滤
验证validation.md表单请求、验证规则

Request/Response

请求与响应

TopicReferenceWhen to consult
Requestsrequests.mdAccessing input, files, headers
Responsesresponses.mdAPI Resources, status codes
Paginationpagination.mdOffset/cursor pagination
主题参考文档适用场景
请求requests.md获取输入、文件、请求头
响应responses.mdAPI Resources、状态码
分页pagination.md偏移量/游标分页

Advanced

进阶内容

TopicReferenceWhen to consult
Rate Limitingrate-limiting.mdThrottle configuration
HTTP Clienthttp-client.mdConsuming external APIs
URLsurls.mdURL generation, signed URLs
Stringsstrings.mdString helpers, UUIDs, slugs
Redirectsredirects.mdRedirect responses

主题参考文档适用场景
速率限制rate-limiting.md限流配置
HTTP客户端http-client.md调用外部API
URLurls.mdURL生成、签名URL
字符串strings.md字符串助手、UUID、友好链接后缀
重定向redirects.md重定向响应

Templates (Code Examples)

模板(代码示例)

Controllers & Routes

控制器与路由

TemplatePurpose
ApiController.php.mdComplete CRUD controller with service
api-routes.mdVersioned routes with middleware
routing-examples.mdDetailed routing patterns
模板用途
ApiController.php.md包含服务层的完整CRUD控制器
api-routes.md带中间件的版本化路由
routing-examples.md详细的路由模式示例

Validation & Resources

验证与资源

TemplatePurpose
FormRequest.php.mdStore/Update Form Requests
validation-rules.mdAll validation rules reference
ApiResource.php.mdResource with relationships
模板用途
FormRequest.php.md创建/更新表单请求
validation-rules.md所有验证规则参考
ApiResource.php.md包含关联关系的资源类

External APIs

外部API

TemplatePurpose
HttpClientService.php.mdReusable HTTP client service

模板用途
HttpClientService.php.md可复用的HTTP客户端服务类

Quick Reference

快速参考

Resource Response

资源响应

php
return PostResource::collection($posts);
return PostResource::make($post);
php
return PostResource::collection($posts);
return PostResource::make($post);

Status Codes

状态码

php
return PostResource::make($post)->response()->setStatusCode(201);
return response()->json(null, 204);
php
return PostResource::make($post)->response()->setStatusCode(201);
return response()->json(null, 204);

Form Request

表单请求

php
public function store(StorePostRequest $request): JsonResponse
{
    $post = $this->service->create($request->validated());
    return PostResource::make($post)->response()->setStatusCode(201);
}
php
public function store(StorePostRequest $request): JsonResponse
{
    $post = $this->service->create($request->validated());
    return PostResource::make($post)->response()->setStatusCode(201);
}

Rate Limiting

速率限制

php
Route::middleware('throttle:60,1')->group(fn () => ...);
php
Route::middleware('throttle:60,1')->group(fn () => ...);

Versioned Routes

版本化路由

php
Route::prefix('v1')->group(function () {
    Route::apiResource('posts', PostController::class);
});
php
Route::prefix('v1')->group(function () {
    Route::apiResource('posts', PostController::class);
});

Pagination

分页

php
return PostResource::collection(Post::paginate(15));

php
return PostResource::collection(Post::paginate(15));

Feature Matrix

功能矩阵

FeatureStatusReference
RESTful Controllerscontrollers.md
API Resourcesresponses.md
Form Request Validationvalidation.md
Route Versioningrouting.md
Route Model Bindingrouting.md
Middlewaremiddleware.md
Rate Limitingrate-limiting.md
Paginationpagination.md
Cursor Paginationpagination.md
HTTP Clienthttp-client.md
Signed URLsurls.md
JSON Responsesresponses.md
功能状态参考文档
RESTful控制器controllers.md
API Resourcesresponses.md
表单请求验证validation.md
路由版本化routing.md
路由模型绑定routing.md
中间件middleware.md
速率限制rate-limiting.md
分页pagination.md
游标分页pagination.md
HTTP客户端http-client.md
签名URLurls.md
JSON响应responses.md