新版ThinkPHP针对API开发做了很多的优化,并且不依赖原来的API模式扩展。
数据输出
新版的控制器输出采用Response类统一处理,而不是直接在控制器中进行输出,通过设置default_return_type或者动态设置不同类型的Response输出就可以自动进行数据转换处理,一般来说,你只需要在控制器中返回字符串或者数组即可,例如如果我们配置:
'default_return_type'=>'json'
那么下面的控制器方法返回值会自动转换为json格式并返回。
namespace app\index\controller;
class Index
{
public function index()
{
$data = ['name'=>'thinkphp','url'=>'thinkphp.cn'];
return ['data'=>$data,'code'=>1,'message'=>'操作完成'];
}
}
访问该请求URL地址后,最终可以在浏览器中看到输出结果如下:
{"data":{"name":"thinkphp","url":"thinkphp.cn"},"code":1,"message":"\u64cd\u4f5c\u5b8c\u6210"}
如果你需要返回其他的数据格式的话,控制器本身的代码无需做任何改变。
支持明确指定输出类型的方式输出,例如下面指定JSON数据输出:
namespace app\index\controller;
class Index
{
public function index()
{
$data = ['name'=>'thinkphp','url'=>'thinkphp.cn'];
// 指定json数据输出
return json(['data'=>$data,'code'=>1,'message'=>'操作完成']);
}
}
或者指定输出XML类型数据:
namespace app\index\controller;
class Index
{
public function index()
{
$data = ['name'=>'thinkphp','url'=>'thinkphp.cn'];
// 指定xml数据输出
return xml(['data'=>$data,'code'=>1,'message'=>'操作完成']);
}
}
核心支持的数据类型包括view、xml、json和jsonp,其他类型的需要自己扩展。
分享到:
相关推荐
vuepress-theme-api :package: :memo: :artist_palette: VuePress的API友好主题。 受时代启发。建于 先决条件您需要设置一些全局依赖项。 入门正在安装 # Install VuePressyarn add vuepress # OR npm install vue...
奇妙清单 3 API 友好的 Alfred 2 工作流程 我注意到很多人对 Yosemite 和 Wunderlist 3 从 Alfred 搜索栏中删除了对 Wunderlist 的简单系统事件/可访问性访问感到沮丧。 我仔细研究了 Wunderlist 的 API,并编写了...
:fire: API友好的猫鼬分页工具 安装 npm install --save mongoose-sex-page 用法 const Dummy = mongoose . model ( 'Dummy' , DummySchema ) const P = require ( 'mongoose-sex-page' ) 简单 P ( Dummy ) . page...
基于Promise微信小程序http请求,轻便,小巧,api友好,功能丰富 特别之处 支持Promise API 拦截请求和响应 转换请求和响应数据 取消请求 自动转换为JSON数据 超时请求 告别callback 支持默认请求前缀 支持并发请求 ...
总结,SpeedPHP框架为移动端API接口开发提供了便捷高效的工具,它的轻量级设计、强大的功能以及对API友好的特性,使开发者能更专注于业务逻辑,提高开发效率。通过深入学习和实践,你将能够充分利用SpeedPHP的优势,...
gomicro-grpc gomicro-grpc是一个基于git-micro框架开发的个人微服务项目,针对gomicro项目套件使用,封装比较优雅,API友好,API注释比较明确,具有快速灵活,容错方便等特点,让您快速了解go微服务项目
微型化go-micro是一个微服务项目,封装比较优雅,API友好,二进制注释比较明确,具有快速灵活,容错方便等特点,让您快速了解go微服务项目生成proto protoc --proto_path = src / protos --micro_out = src / Users ...
这主要得益于现代浏览器的强大功能以及某些服务提供方对REST_API友好的设计。 #### 三、构建REST_API请求网址 文档提到,使用REST_API的关键在于构建正确的请求网址。这包括了确定API的端点、所需的参数等。例如,...
2. **API友好**:专门设计的API主题使得接口描述更加清晰,方便开发者快速找到所需的信息。 3. **可定制性**:由于是开源项目,开发者可以根据自己的喜好或公司风格对主题进行调整和定制。 4. **社区支持**:作为...
1. **API友好**:这个库可能是为RESTful API设计的,允许开发者创建与API接口兼容的表单,使得前后端分离的项目能更有效地交互数据。 2. **模型表单**:Django_api_forms可能支持直接基于数据库模型创建表单,这样...
DRF的API友好,文档详尽,社区活跃,是开发Web API的首选框架之一。 二、序列化 在DRF中,序列化是将Python对象转换为JSON或其他可传输格式的过程,同时也支持将这些数据反序列化回Python对象。DRF提供了...
SCM Manager 是一款同时支持Git、Subversion、Mercurial的源代码管理服务器,基于Java构建。 中文版由木鱼制作,除了进行全面的中文化以外,还...友好的用户界面和简单的插件API 很多插件可用 BSD授权 方便各位下载
Go gin Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了1.0版本。具有快速灵活,容错方便等特点。其实对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http...
Api-larapi.zip,一种API友好的拉瓦维尔叉子。身份验证、错误处理、资源筛选、排序、分页以及更多内容,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取...
4. API友好设计,包括出色的性能、RESTful支持和远程调试; 5. 高效的惰性加载机制,优化了路由、配置和自动加载; 6. 支持MongoDB的重构ORM数据库、模型及关联; 7. 已进入BUG及安全维护阶段,不再进行功能升级。 ...
在"实例75 控制Windows的关闭和启动.zip"中,我们可以看到实际的源代码实现,这可能是用C++或类似的Windows API友好语言编写的。源码会展示如何正确地封装和调用这些API,以及如何在特定条件下执行关机或重启操作。...
分形库允许开发者定义数据如何被转换为API友好的格式,包括嵌套资源、包含和排除字段等功能,使API接口更具灵活性和可定制性。 在使用`laravel-doctrine-responder`时,开发者可以创建自定义的Transformer类,这些...
8. **API友好**:Dropzone的API设计简洁明了,易于理解和使用,无论是初始化一个新的Dropzone区域,还是动态添加或移除文件,都能通过简单的调用来完成。 为了使用Dropzone库,你需要在项目中引入Dropzone.js文件,...
3. 错误处理:当API返回错误时,需要捕获并适当地处理异常,向用户显示友好错误信息。 4. 日志记录:为了调试和监控,建议记录API请求和响应的详细信息。 5. 重试策略:对于网络不稳定或暂时性服务故障,可以实现重...
6. **API友好**:WebIX提供了丰富的API和事件系统,使得开发者可以通过简单的JavaScript代码实现复杂的功能和交互。 7. **主题和皮肤**:WebIX内置了多种预设主题,同时支持自定义皮肤,帮助开发者快速调整应用的...