tp5框架开发RESTful风格接口例子

article/2025/8/26 7:58:19

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/example440982/article/details/80328087
tp5框架开发RESTful风格接口例子
@time: 2018/5/15
@author: hotsuitor@qq.com
tp版本 5.1

缘由:公司需要一个生成海报的活动,本人是负责前端写前端页面的。本人思路是前端用canvas生成海报,公司的前辈给我的建议是用后端生成海报,前端canvas生成的图片会有一写手机不适配的问题。然后……后端说很简单,你自己写一下就好了,好吧,我自己写。

公司用的是tp3框架,我没有用过,之前有用过tp5,所以直接上最新的(已经更新到了tp5.1,版本会有点区别,不要怂,就是干)。
老规矩,先看官方文档(看《ThinkPHP5快速入门》,官网的《ThinkPHP5.0完全开发手册》不详细,收费与免费的区别),直接定位到 “API开发”, 根据官方文档的例子来写。

测试数据库

/*
Navicat MySQL Data TransferSource Server         : localhost
Source Server Version : 50553
Source Host           : localhost:3306
Source Database       : testTarget Server Type    : MYSQL
Target Server Version : 50553
File Encoding         : 65001Date: 2018-05-15 18:39:18
*/SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for news
-- ----------------------------
DROP TABLE IF EXISTS `news`;
CREATE TABLE `news` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`title` varchar(255) NOT NULL,`content` text NOT NULL,PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='新闻表';-- ----------------------------
-- Records of news
-- ----------------------------
INSERT INTO `news` VALUES ('1', '新闻1', '新闻1内容');
INSERT INTO `news` VALUES ('2', '新闻2', '新闻2内容');
INSERT INTO `news` VALUES ('3', '新闻3', '新闻3内容');
INSERT INTO `news` VALUES ('4', '房价又涨了', '据新华社消息:上海均价环比上涨5%');



数据看相关的配置 在 数据库配置文件中配置 data

在 application 目录下新建 api 目录,用版本v1来区别,tp5.1的目录结构和tp5.0版本的目录结构略有区别,读者自行看官方文档。

├─application
│  ├─api
│  │  └─controller
│  │      └─v1
│  ├─common
│     └─model
├─config
├─extend
│  └─page
├─public
│  ├─static
│  │  ├─css
│  │  ├─font
│  │  ├─img
│  │  ├─js
│  │  ├─uploads
│  │  └─video
│  └─test
├─route


在v1目录下新建 News.php 控制器,注意看命名空间,就知道目录结构了

<?php 
namespace app\api\controller\v1;use think\Controller;class News extends Controller
{public function read(){$id = input('id');$model = model('News');$data = $model->getNews($id);// 查询数据if ($data) {$code = 200;} else {$code = 404;}$data = ['code' => $code,'data' => $data];return json($data);}
}



在common目录下 新建 model 目录,在model目录下,新建一个 News.php 模型

|---common
|      |---model
|            |---News.php


这里是手写的目录结构,所以跟上面tree命令生成的目录结构显示不太一样

<?php 
namespace app\common\model;use think\Model;
use think\Db;class News extends Model
{//不能写get方法,框架内部定义了get方法,本人一开始就在这里写了get方法//导致一直报 xxxx News::get() non static method in class xxxpublic function getNews($id = 1){$res = Db::name('news')->where('id', $id)->select();// echo $this->getLastSql();return $res;}public function getNewsList(){$res = Db::name('news')->select();// echo url('picture');return $res;}
}


定义路由,在route目录下的 route.php 文件

Route::rule(':version/news/:id', 'api/:version.News/read');   //查询


在浏览器中访问 tt.xyz/?s=v1/news/1 可以看到下图结果。其中 tt.xyz 是我本地配置的host域名,入口配置了Apache重写规则,但是直接访问 tt.xyz/v1/news/1 有问题,所以改用兼容方式访问。
最后给大家看一下目录结构,以防有人找不到,文中没有谈到的目录,忽略即可。


http://chatgpt.dhexx.cn/article/IIMymYmp.shtml

相关文章

TP5框架学习心得————(TP5框架的下载与其的基本目录结构)

一个好的软件直接影响到了我们的学习效率 TP5实在TP3.2的基础上改进的,相对与其他的框架个人觉得更适合与我们中国人毕竟是我们中国人自主研发的,想要学习起来其实也不难,只要看懂手册结合手册用一些小demo实现增、删、改、查基本上也就算入门了。 第一步:下载TP5框架 在…

tp5 框架使用Redis缓存,详解

1.小皮配置下载redis环境 1.打开小皮软件&#xff0c;选择软件管理找到redis下载&#xff0c; 2.找到网站域名&#xff0c;点击管理选中PHP扩展&#xff0c;选中redis 3.在首页启动redis&#xff0c;并查看配置 一般我们在小皮内启动redis后&#xff0c;查看配置参数是否正确…

tp5框架实现登录功能

TP5框架实现登录功能 安装TP框架 使用最简单的安装方式&#xff0c;直接从官网下载解压&#xff0c;将压缩包里的文件复制到项目目录下。 管网地址&#xff1a;http://www.thinkphp.cn/down.html 安装完框架的目录如图所示 添加控制器 在application\index\controller目录…

TP5框架目录解析

|-application 应用目录(几乎整个项目的内容都写在这里)|-index(这里的文件夹tp5叫做模块-----一般是前台模块,也可以根据需要需求修改成其他(例如:home),需要修改配置文件,修改默认模块、控制器、操作) 【注】:TP5默认只有一个index文件(模块)和一个控制层(con…

tp5登出_tp 5框架实现登录,登出及session登录状态检测功能示例

本文实例讲述了tp 5框架实现登录&#xff0c;登出及session登录状态检测功能。共享给大家供大家参考&#xff0c;详细如下&#xff1a; 1&#xff0c;访问http://localhost/tp5/admin.php时&#xff0c;判断有没有登录&#xff1a; 想法&#xff1a;写一个父类&#xff0c;继承…

ThinkPhp5开发实战1:搭建环境配置TP5框架(持续更新收藏关注)

文章目录 前言一、下载thinkphp5.0.10和安装本地环境二、下载H-UI后端模板三、静态文件引入四、创建后台页面首页 前言 php框架有助于促进快速应用开发&#xff0c;不仅节省时间&#xff0c;有助于建立更稳定的应用&#xff0c;而且&#xff0c;减少了重复代码。本文章采用图文…

SAP中会计科目删除相关知识点

一、考虑实际业务情况及科目删除的必要性或替代方案。如科目锁定可以满足业务需求的情况下&#xff0c;尽量不删除。 二、无业务数据的科目删除&#xff1b; 通过事务OBR2来执行科目删除。但前提是科目建立后没有任务过账业务数据。在OBR2的帮助信息中有相关描述。 三、删除标…

SAP 会计科目表并存时会计科目映射

会计科目表相关总结&#xff0c;查看&#xff1a;SAP会计科目表(Charts of Accounts)_王小磊的博客-CSDN博客_sap 科目表 会计科目维护T-CODE: FS00&#xff08; FSP0 FSS0&#xff09; 映射关系&#xff1a; 【一】运营科目表和国家科目表同时启用 国家科目表中的会计科目…

计算机软件属于生产资产吗,制造费用属于资产类科目吗?

摘要&#xff1a; 本文给各位税务会计带来的是制造费用属于资产类科目吗&#xff1f;相关的内容&#xff0c;在制造费用属于资产类科目吗&#xff1f;文章中给大家详细讲解了有关制造费用属于资产类科目吗&#xff1f;的会计税法知识。 制造费用属于资产类科目吗&#xff1f; 制…

Oracle EBS R12 创建会计科目失败诊断和处理

前言&#xff1a;Oracle EBS R12 财务系统中运维工作中比较常见的问题就是创建会计科目失败&#xff0c;本文对资产模块和应付模块创建会计科目的一般情况进行总结。 1.创建会计科目失败一般场景 1.1 期间未打开 当资产模块或应付模块的会计期间与总账模块的期间不一致时&#…

计算机维护费入什么会计科目,​系统维护费记入什么会计科目

系统维护费记入什么会计科目 答:开票: 借:管理费用--办公费 贷:现金或银行存款 借:应交税金--应交增值税(减免税) 贷:营业外收入 申报: 借:管理费用--办公费 贷:现金或银行存款 会计科目是对会计要素对象的具体内容进行分类核算的类目.会计对象的具体内容各有不同,管理要求也有…

计算机配件耗材发票科目有哪些,办公耗材属于什么会计科目

办公耗材属于什么会计科目 1、办公耗材属于一级科目管理费用&#xff0c;明细科目可写办公费。 2、办公耗材可依据所使用的部门来计入不同的科目&#xff0c; 管理部门使用的 借&#xff1a;管理费用--办公费 贷&#xff1a;银行存款/库存现金 销售部门使用的 借&#xff1a;销…

SAP 资产会计过账-总账科目的获取

资产创建 AS01 注意&#xff1a;资产的分类决定了 过账的对应的总账科目 SELECT SINGLE T095~KTANSW INTO TACCOUNTGL-GL_ACCOUNTFROM ANLAJOIN T095 ON ANLA~KTOGR T095~KTOGRWHERE ANLA~BUKRS PHEAD-BUKRS ANDANLA~ANLN1 GLWITEM-ASSET_NO ANDANLA~ANLN2 GLWITEM-SUB…

软件测试报告费计什么科目,软件记什么会计科目

1 软件记什么 会计 科目 会计学的研究对象包括会计的所有方面&#xff0c;如会计的性质、对象、职能、任务、方法、程序、组织&#xff0c;制度、技术等。会计学用自己特有的概念和理论&#xff0c;概括和总结它的研究对象。接下来小编就告诉你软件记什么会计科目。 根据《企业…

SAP资产会计中的资产分类与科目确定码不对?

SAP资产会计中&#xff0c;资产分类与科目确定码之间的分配对应关系要做两次&#xff0c; 一&#xff0c; OAOA 在资产分类定义中&#xff0c;分配一次。 这里的分配&#xff0c;不包括折旧相关的业务。 二&#xff0c; ANK1 在与折旧相关的科目分配中&#xff0c;再次分配…

SAP系统 会计科目主数据详解

会计科目&#xff08;主数据&#xff09;概述&#xff1a; 每个公司代码均指定一个总帐的科目表。此科目表在配置中分配到公司代码&#xff0c;作为其运营科目表 每个总帐都是根据科目表建立的。所有总帐科目的定义均以有序形式包含在科目表内。定义主要由科目编号、科目名称…

计算机设备属于什么会计科目,​机器设备属于什么会计科目

机器设备属于什么会计科目 使用的机器设备属于"固定资产"或"低值易耗品"会计科目. 固定资产是指企业为生产产品、提供劳务、出租或者经营管理而持有的、使用时间超过12个月的,价值达到一定标准的非货币性资产,包括房屋、建筑物、机器、机械、运输工具以及其…

会计科目(定义,分类)

&#xff08;一&#xff09;会计科目的定义&#xff1a; 会计科目&#xff0c;是对会计要素具体内容进行分类核算 的项目&#xff0c;是进行会计核算和提供会计信息的基础 意义&#xff1a;⑴复试记账的基础&#xff1b; ⑵编制记账凭证的基础&#xff1b; ⑶为成本计算与财…

树莓派python编程自学-两个简易的树莓派初学者Python程序

Python是由Guido van Rossum于1991年创建的高级编程语言。它是一种编程语言,就像C ++,C#,Java或任何其他编程语言一样。 Python非常易于使用,语法清晰,但却是一种强大的语言。在本教程中,您将学习如何在Raspberry Pi上打开Python,打印“Hello World”,使LED闪烁,并使…

树莓派python编程自学-树莓派Python编程指南 中文PDF扫描版

《树莓派Python编程指南》共12章:第1~3章深入介绍如何在树莓派上使用Python,为学习其他知识打下基础;第4章介绍使用Qt工具包开发图形用户界面;第5章介绍在Python中创建游戏;第6章介绍如何利用GPU来使用OpenGL创建3D场景;第7章讲解如何从网页上抓取信息或使用树莓派为全世…