Yii框架RESTful接口怎么开发_Yii框架快速创建REST API完整教程【教程】

夜枫大大_1144

夜枫大大_1144

2026-04-27

636人浏览

原创

直接继承yii\rest\activecontroller是最快路径,但需确保url规则启用复数化、开启美化与严格解析,手动声明options动词支持,并在模型fields()中统一控制返回字段,避免重写actions()破坏分页逻辑。

yii框架restful接口怎么开发_yii框架快速创建rest api完整教程【教程】

直接继承 yii\rest\ActiveController 是最快路径,它自动绑定 indexviewcreateupdatedelete 五个动作,只要模型是 ActiveRecord,几乎不用写逻辑——但多数人卡在路由 404、OPTIONS 被拦、字段漏脱敏这三处。

为什么 /users 访问返回 404

根本不是代码没写对,而是 URL 规则没匹配上。Yii2 的 yii\rest\UrlRule 默认启用复数化(pluralize),模型叫 User,它只认 /users,不认 /user;同时要求 urlManager 必须开启美化和严格解析:

  • 'enablePrettyUrl' => true'enableStrictParsing' => true 缺一不可
  • rules 中必须显式注册: ['class' => 'yii\rest\UrlRule', 'controller' => 'user']
  • 控制器里 public $modelClass = 'app\models\User' 必须指向完整命名空间,不能漏 app\models\
  • 如果模型主键不是 id(比如是 uid),得重写 findModel(),否则 GET /users/123 查不到数据

OPTIONS 请求直接 404 或跨域失败

这不是 CORS 配置没开的问题,而是 Yii2 根本没把 OPTIONS 当作合法动词路由过去。浏览器发带 Authorization 或自定义 header 的请求前,会先发 OPTIONS 预检,没响应就直接拦截。

Wordpress REST API
Wordpress REST API

OpenClaw技能,提供WordPress REST API命令行工具,支持通过原生HTTP处理文章、页面、分类、标签、用户及自定义请求。

下载
  • REST 模块不会自动为每个动作注册 OPTIONS 处理器,必须手动声明支持的动词:public $verbs = ['index' => ['GET', 'HEAD', 'OPTIONS']]
  • 全局配置里,as cors'Access-Control-Allow-Methods' 必须显式包含 OPTIONS,例如:'GET, POST, PUT, DELETE, OPTIONS'
  • Nginx/Apache 可能默认拒绝 OPTIONS,需检查服务器配置是否返回 405;Nginx 要加 add_header Access-Control-Allow-Methods ... 并确保未用 limit_except 拦截

怎么控制 API 返回哪些字段

别在控制器里 return ['name' => $model->name],那会绕过 yii\rest\Serializer,丢失分页、状态码、关联数据嵌套等 REST 特性。

  • 统一在模型里重写 fields() 方法,用 unset($array['password_hash']) 剔除敏感字段
  • 加计算字段: 'full_name' => function ($model) { return $model->first_name . ' ' . $model->last_name; }
  • 要嵌套关联数据(如用户所属部门),在 fields() 里加 'department' => function ($model) { return $model->department; },前提是模型已定义好 getDepartment() 关联方法
  • 若需不同接口返回不同字段集,可按场景传参,再在 fields() 内部判断 Yii::$app->requestedRoute

真正容易被忽略的是:yii\rest\ActiveController 的动作行为(比如 index 的分页逻辑)依赖 prepareDataProvider 返回的数据提供者,一旦你重写了 actions() 却没保留这个回调,列表接口就可能失去分页或过滤能力。

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

yii框架 yii rest api

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
PHP API接口开发与RESTful实践
PHP API接口开发与RESTful实践

本专题聚焦 PHP在API接口开发中的应用,系统讲解 RESTful 架构设计原则、路由处理、请求参数解析、JSON数据返回、身份验证(Token/JWT)、跨域处理以及接口调试与异常处理。通过实战案例(如用户管理系统、商品信息接口服务),帮助开发者掌握 PHP构建高效、可维护的RESTful API服务能力。

2025.11.26

504

16

PHP Yii框架专题
PHP Yii框架专题

本专题专注于PHP主流框架Yii的应用,系统讲解MVC架构、路由机制、数据库操作、表单处理、安全验证与RESTful API 开发等核心内容。通过电商网站、后台管理系统与内容管理平台等实战项目,帮助学员快速掌握Yii框架的开发技巧与实战经验。

2025.09.04

2730

22

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

140

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

60

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

60

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

40

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

40

27

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

2026.09.11

360

28

GDB怎么查看变量值
GDB怎么查看变量值

本专题介绍GDB调试过程中查看变量值的具体方法,涵盖局部变量、函数参数、数组、结构体和指针内容查询,同时整理变量持续显示、格式化输出及无法读取变量时的排查思路。

2026.09.11

120

22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Yii2.0框架开发实战视频教程
Yii2.0框架开发实战视频教程

共22课时 | 9.2万人学习

Yii Framework 2.0 API 官方文档
Yii Framework 2.0 API 官方文档

共0课时 | 0人学习