• Yii2高速构建RESTful Web服务功能简单介绍


    Yii2相比Yii1而言,一个重大的改进是内置了功能完备的RESTful支持。

    其内置RESTful支持提供了例如以下功能:

    • 使用ActiveRecord的通用接口来高速构建原型;
    • 应答格式协商(缺省支持 JSON 和 XML)。
    • 可定制的对象序列化,支持选择输出哪些列。
    • 请求数据的格式化以及验证错误;
    • 通过HTTP 动词映射实现高效路由;
    • 支持 OPTIONS 和 HEAD 动词;
    • 认证 和 鉴权;
    • 支持 HATEOAS(RESTful的架构约束,超媒体即应用程序状态);
    • 结果缓存。可使用 yiifiltersHttpCache 缓存。
    • 訪问速率限制,避免恶意攻击和服务滥用;
    • 搜索和过滤:
    • 内置数据分页功能;
    • API版本号控制。

    这些功能假设都是自己来实现,且还要有良好的扩展性、定制性,

    还是要花费不少精力的,只是好在Yii2已经都非常好的实现了而且还非常easy进行扩展。

    以下是一些功能的简介:

    Yii2中可定制输出变得非常简单,比方想输出某些列或排除某些列。仅仅须要简单的覆盖(override)活动记录的fields方法即可。

    Yii2中对API版本号控制的支持结合了业界流行的两种方式,一种为在URL中嵌入版本号号(如http://api.techbrood.com/v1/users),一种是在HTTP Accept头中指定。

    Yii2曾经者支持大版本号,而以后者支持小版本号号。这样能够在简化代码、代码分离和复用之间达成较好的平衡。

    Yii2中的安全机制支持3种方式,HTTP BASIC AUTH。查询參数(即在URL參数中包括訪问令牌)和 开源协议 OAUTH2。


    以下使用最少的语句来实现一个用户(User)资源的完整Web服务:

    首先,创建一个控制器类 appcontrollersUserController

    namespace appcontrollers;
    
    use yii
    estActiveController;
    
    class UserController extends ActiveController {
        public $modelClass = 'appmodelsUser';
    }

    然后,改动config中的 urlManager 配置项:

    'urlManager' => [
        'enablePrettyUrl' => true,
        'enableStrictParsing' => true,
        'showScriptName' => false,
        'rules' => [
            ['class' => 'yii
    estUrlRule', 'controller' => 'user'],
        ],
    ]

    这样即可了!

    你能够在你的浏览器中试着訪问下:http://localhost/users。

    这仅仅是用户列表接口,Yii2实际自己主动帮你创建了一整套接口:

    yii2 auto-generated restful interfaces

    完整功能请查阅Yii2中文指南RESTful部分:Yii2 中文权威指南


    by iefreer

  • 相关阅读:
    eclipse新建web项目开发JSP
    配置tomcat系统日志--java eclipse
    Eclipse 导入外部项目无法识别为web项目并且无法在部署到tomcat下
    for和foreace的区别
    布局TextView和EditText区别,layout_width和lay_weight区别--Android Studio
    设备旋转,创建水平模式布局--Android studio
    关于点击Invalidate Caches/Restart禁止插件后,重新加载--Android Studio
    Android 全面插件化 RePlugin 流程与源码解析
    git分支开发,分支(feature)同步主干(master)代码,以及最终分支合并到主干的操作流程
    git使用流程
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6915551.html
Copyright © 2020-2023  润新知