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

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

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

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

首先,创建一个控制器类 app\controllers\UserController

namespace app\controllers;

use yii\rest\ActiveController;

class UserController extends ActiveController {
    public $modelClass = ‘app\models\User‘;
}

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

‘urlManager‘ => [
    ‘enablePrettyUrl‘ => true,
    ‘enableStrictParsing‘ => true,
    ‘showScriptName‘ => false,
    ‘rules‘ => [
        [‘class‘ => ‘yii\rest\UrlRule‘, ‘controller‘ => ‘user‘],
    ],
]

这样即可了!

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

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

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

by iefreer

时间: 2024-10-27 13:44:26

Yii2高速构建RESTful Web服务功能简单介绍的相关文章

Yii2快速构建RESTful Web服务功能简介

Yii2相比Yii1而言,一个重大的改进是内置了功能完备的RESTful支持. 其内置RESTful支持提供了如下功能: 使用ActiveRecord的通用接口来快速构建原型: 应答格式协商(缺省支持 JSON 和 XML): 可定制的对象序列化,支持选择输出哪些列: 请求数据的格式化以及验证错误: 通过HTTP 动词映射实现高效路由: 支持 OPTIONS 和 HEAD 动词: 认证 和 鉴权: 支持 HATEOAS(RESTful的架构约束,超媒体即应用程序状态): 结果缓存,可使用 yii

使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务

RESTful Web 服务简单介绍 REST 在 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之中的一个. REST 中最重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识. client应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集.RESTful Web 服务是使用 HTTP 和 REST 原理实现的 Web 服务.通常,RESTful Web 服

基于jersey和Apache Tomcat构建Restful Web服务(一)

基于jersey和Apache Tomcat构建Restful Web服务(一) 现如今,RESTful架构已然成为了最流行的一种互联网软件架构,它结构清晰.符合标准.易于理解.扩展方便,所以得到越来越多网站的采用.那么问题来了,它是什么呢? 起源 REST(Representational state transfer)在 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一. REST 中最重要的概念是资源(resources

基于jersey和Apache Tomcat构建Restful Web服务(二)

基于jersey和Apache Tomcat构建Restful Web服务(二) 上篇博客介绍了REST以及Jersey并使用其搭建了一个简单的“Hello World”,那么本次呢,再来点有趣的东西,当然也是很简单了,仅仅是在路径中包含参数而已了.接下来开始动手实践吧. 在路径中包含参数 接下来就在上次的基础上进行改动即可,或者是再添加一个方法,随意了,这个方法主要就是在路径中加入输入的参数,并且根据参数的不同,它的返回值也不同,返回值为“Hello”+你输入的参数.这里用到了“PathPar

SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务

一.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.

web服务的简单介绍及apache服务的安装

一,web服务的作用:  是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档.可以放置网站文件,让全世界浏览:   可以放置数据让全世界下载.目前最主流的三个Web服务器是Apache.Nginx.IIS 二,当前互联网主流Web服务软件: Apache:中小型web服务的主流,web服务使用目前排名第一 Nginx:大型网站web服务的主流,目前使用使用增势迅猛,社区活跃,发布更新版本比较快. Nginx的分支Tengine(淘宝网正在使用),目前也在飞速发展. Lig

[译]Spring Boot 构建一个RESTful Web服务

翻译地址:https://spring.io/guides/gs/rest-service/ 构建一个RESTful Web服务 本指南将指导您完成使用spring创建一个“hello world”RESTful Web服务的过程. 你将会构建什么 您将构建一个将接受HTTP GET请求的服务: 您将构建一个将接受HTTP GET请求的服务: http://localhost:8080/greeting 1 1 并且使用JSON的形式进行响应: {"id":1,"conten

使用RpcLite构建SOA/Web服务(Full .Net Framework)

使用RpcLite构建SOA/Web服务(Full .Net Framework) SOA框架系列 1. 使用RpcLite构建SOA/Web服务 2. 使用RpcLite构建SOA/Web服务(Full .Net Framework) 继前一篇文章<使用RpcLite构建SOA/Web服务>已过去好几个月.在这几个月里对RpcLite作了很多修改如:.Net Core的支持.Fluent API方式配置.Monitor.Filter等功能. 前一篇文章介绍了使用RpcLite的基本用法,在文

Maven+jersey快速构建RESTful Web service集成mongodb-短小而精悍-值得拥有

源码下载地址:http://pan.baidu.com/s/1gdIN4fp 转载请注明原著地址:http://blog.csdn.net/tianyijavaoracle/article/details/41708217 Jersey是JAX-RS(JSR311)开源参考实现用于构建RESTful Web service.此外Jersey还提供一些额外的API和扩展机制,所以开发人员能够按照自己的需要对Jersey进行扩展 理论的东西在这里我就不多说了!这个实例是实现了REST的三个基本get