如何在thinkphp5.1中写接口及接口调用

使用url请求调用ThinkApi天气实例(PHP)保姆级教程 调用免费、有趣的一些Api,发现白嫖接口快乐的同时还能学到知识~ 阅读详情

在thinkphp5.1中如何写接口及如何调用接口

对于php不熟悉的人来说,解除thinkphp还是挺有难度的。

下面记录如何编写接口。

及如何对编写的接口进行调用。

1.首先在thinkphp中的application中的api/controller下新建文件Ecodemo.php

<?php

// +----------------------------------------------------------------------

// |

// +----------------------------------------------------------------------

// |

// +----------------------------------------------------------------------

// |

// +----------------------------------------------------------------------

namespace app\api\controller;

use controller\BasicApi;

use service\DataService;

use service\NodeService;

use service\ToolsService;

use think\Db;

use think\exception\HttpResponseException;

/**

 * 兼容适配接口

 * Class Member

 * @package app\api\controller

 */

class Ecodemo extends BasicApi {

    protected $table = 'Compatible';

    /**

     * 初始化

     * @access protected

     */

    protected function initialize() {

        parent::initialize();

    }

    /**

     * 获取适配信息

     * @access public

     * @throws \think\Exception

     * @throws \think\exception\PDOException

     */

    public function index() {

        $param = $this->request->param();  //获取请求的参数

        if (empty($_SERVER['HTTP_AUTHORIZATION']))

            throw new HttpResponseException(json(['code' => 0, 'msg' => 'error!']));

        $sign = $_SERVER['HTTP_AUTHORIZATION'];

        $company = Db::name('authentication')->where('token', $sign)->value('company');

        if (empty($company))

            throw new HttpResponseException(json(['code' => 0, 'msg' => 'error!']));

        $db = Db::name($this->table)

            ->order(['sort' => 'asc', 'id' => 'desc'])

            ->where('is_deleted', 0)

            ->where('id', $param['list_id'])->field(['name','update_time','desc']);  //数据库查询

        // dump($db);

        return parent::_list($db);

        // throw new HttpResponseException(json(['code' => 1, 'list' => $db]));

    }

    /**

     * 修改适配信息

     * @access public

     * @throws \think\Exception

     * @throws \think\exception\PDOException

     */

    public function update() {

        $param = $this->request->param();

        if (empty($_SERVER['HTTP_AUTHORIZATION']))

            throw new HttpResponseException(json(['code' => 0, 'msg' => 'error!']));

        $sign = $_SERVER['HTTP_AUTHORIZATION'];

        $company = Db::name('authentication')->where('token', $sign)->value('company');

        if (empty($company))

            throw new HttpResponseException(json(['code' => 1, 'msg' => 'error!']));

        if ($this->request->isPost()) {

            Db::name($this->table)

            ->where('id',$param['list_id'])

            ->data(['name' => $param['content']])

            ->update();   //数据库修改

            throw new HttpResponseException(json(['code' => 0, 'msg' => '修改成功']));

             

        } else {

            throw new HttpResponseException(json(['code' => 1, 'msg' => 'error!']));

        }

    }

     /**

     * 获取请求header

     *

     */

    function getallheaders($param = null) {

        $headers = array();

        foreach ($_SERVER as $name => $value) {

            if (substr($name, 0, 5) == 'HTTP_') {

                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;

            }

        }

        if($param != null){

            return $headers[$param];

        }

        return $headers;

    }

}

2.通过接口进行访问

get请求,访问index接口

通过get请求问/application/api/controller/ecodemo.php中的index方法如下图所示 

post请求,访问update接口

将下图的json内的内容对数据库内容进行更改。

 最后我发现无论是get、post、put请求,我们都可以通过$this->request->param();方法获取到参数信息。

 

ThinkPHP API接口开发的深入探讨 ThinkPHP,作为一款流行的PHP开发框架,为API接口的开发提供了强大的支持。本文将详细探讨ThinkPHP API接口开发的各个方面,包括框架优势、开发流程、安全性考虑等。关键在这儿:ThinkPHP作为一款优秀的PHP开发框架,在API接口开发中具有显著的优势。通过遵循合理的开发流程和注意安全性问题,可以开发出高效、稳定、安全的API接口。在API接口开发中,安全性是一个不可忽视的问题。三、ThinkPHP API接口开发中的安全性考虑。一、ThinkPHP框架在API接口开发中的优势。 阅读详情

相关推荐

PHP调用API接口的方法及实现

API(Application Programming Interface),应用程序编程接口,是一种用于不同应用程序之间通信的协议。简单来说,API就是一组可编程的约定,用于定义应用程序如何与其他程序或服务器通信。通过API,一个应用程序可以请求另一个应用程序的服务或数据,或将自己的服务或数据提供给其他应用程序使用。API通常采用HTTP或SOAP等标准协议进行通信,支持多种数据格式的交换,例如XML、JSON、CSV等。API通常需要进行身份验证和参数传递,以确保数据的有效性和安全性。

WBKJ_Noah的博客 1406

用ThinkPHP6写API接口(实现前后端分离一)

1. 首先搭建PHP使用环境,比如phpstudy等,安装composer,通过composer安装tp6。也可以进行域名绑定,这样就可以不用运行上面的代码,可以直接使用了。中添加即可,配置域名的可以在面板网站后的设置中增加伪静态。的伪静态配置,选择其中一种使用即可。文件,重命名,去掉前面的。1. 在文件夹中找到。

qq_53051594的博客 2683

thinkphp5.0中使用curl调用接口数据

//第一种数据调用方式 $arr = array("a"=>"123456","b123456"=>"zhaotoubiao"); //接口地址与token $url ='https://地址?token=token'; $data_string=json_encode($arr); //初始化 $ch = curl_init(); ...

skx19980524的博客 2750

thinkphp开发api接口

路由决定了客户端发出的请求应该如何被分发给相应的控制器方法。良好的路由设计可以让API更加易于理解和维护。打开路由文件:找到,这是默认的应用程序路由定义文件。添加新的路由条目:例如,如果您希望为用户列表提供一个API端点,可以添加如下代码:php深色版本这里指定了当收到/users路径下的GET请求时,由控制器中的index方法处理。保存更改:完成后记得保存文件。测试路由:启动内置Web服务器()然后通过浏览器或Postman等工具尝试访问刚刚设定的API地址,检查是否能够正常响应。

2401_86114684的博客 2093

封装thinkphp5 map类库,调用百度地图接口

1.进入http://lbsyun.baidu.com -> 控制台 -> 创建应用 导航栏点击开放文档 -> web服务API 2.编写thinkphp5 map类库 application -> extra -> map.php 这是map.php文件的代码 <?php return[ 'ak' =&gt...

qq_42625211的博客 749

thinkPHP5.1学习小结(一)

thinkPHP5.1学习小结(一) 安装方法: 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctr...

shangshangqian 1336

thinkPHP5.1框架简介

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代.

weixin_45843073的博客 2687

Thinkphp8.1项目集成swagger-php5.x自动生成接口文档

thinkphp8+swagger-php5.x自动生成接口文档

weixin_42180229的博客 1716

Thinkphp 5.1安装

环境搭建 安装 由于Thinkphp5.1【以下简称TP5.1】不提供完整版下载,因此需要通过Composer或Git的方式来下载。本次安装环境里的操作系统为Windows,安装方式是Composer。 首先安装好Composer,然后命令行界面切换到安装程序目录下,执行命令: composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 然后运行 composer create-pro.

ylnzzl的博客 2289

ThinkPHP5开发API接口实例

接口功能说明: 前端提交学生学号(sno)给Api,Api接口返回此学生的基本信息 API接口端 namespace app\index\controller; use think\Controller; use app\index\model\Student; class User{ public function index() { return $this->fetch(); } //...

1092

thinkphp5 使用soap调用接口

分享下厚典在上海网站开发中的技术,thinkphp3.2调用soap这里不讲了,直接说一下thinkphp5调用soap,需要对tp5的结构有一定的了解,不然看不懂。 先要开启php_soap,不然会报错 一、服务器端 1、先在common.php下建function 如图: 代码如下: function WebService($uri,$class

厚典的博客 8373

【隐私计算】从本地加法到在线乘法:Beaver Triple如何重塑算术秘密分享的运算效率

本文深入探讨了Beaver Triple在算术秘密分享中的关键作用,显著提升了隐私计算中的乘法运算效率。通过对比加法与乘法的实现差异,详细解析了Beaver Triple的预处理机制和在线计算优化,展示了其在减少通信量和计算时间方面的革命性突破。

weixin_29227585的博客 436

ThinkPHP5.1 写独立PHP脚本时如何按照框架的规则调用框架功能

ThinkPHP5.1 写独立PHP脚本时如何按照框架的规则调用框架功能 在用 thinkphp5 的时候难免会有独立写 php 脚本的情况,一般情况下为了便于整理区分,我们会将独立的 php 脚本专门放在一个文件夹内,便于管理。 在这种情况下 ,由于该 php 脚本已经不按照 tp5 规则来写了,因此框架无法识别,用不了 tp5 的功能,像函数,方法等等。 这样,我们一般会使用 原生脚步 来写,...

Blau的博客 534

AI 帮我写单测:pytest 覆盖率提升 40% 的协作日志

AI助力pytest测试覆盖率提升40%的实践总结 本文分享了作者通过AI协作提升Python项目测试覆盖率的实践经验。初始测试覆盖率仅45%的电商后端项目,通过系统化的AI协作策略(代码分析、场景矩阵设计、迭代优化)实现了显著改进。AI不仅生成312个高质量测试用例,更提供了测试设计思路和最佳实践建议。最终覆盖率提升至85%,发现并修复23个潜在bug,效率提升3倍。文章详细展示了用户服务、订单服务等核心模块的测试案例,以及分层Fixture设计、参数化测试等高级技巧。关键成功因素包括明确的协作边界、迭代

摘星编程的博客 3281

CNC雕刻与VCarve Pro实战:将三维地形数据转化为木质景观时钟

计算机辅助制造(CAM)是现代数字制造的核心技术之一,它通过软件将设计模型转化为机床可执行的指令,驱动设备进行精准加工。其原理在于将三维模型离散为刀具运动路径(G代码),控制铣刀等执行机构进行“减材”成型。这项技术的价值在于实现了复杂三维形体的高精度、可重复制造,极大地拓展了创意实现的边界。在应用场景上,CAM广泛应用于模具加工、原型制作、个性化工艺品制造等领域。本文聚焦于一个具体实践:利用VCarve Pro软件,结合从在线地图服务获取的真实地形STL数据,通过CNC雕刻机在硬木上加工出具有真实地理特征的

weixin_30651345的博客 378

tp5类的属性不存在_thinkPHP5.1框架中Request类四种调用方式示例

本文实例讲述了thinkPHP5.1框架中Request类四种调用方式。分享给大家供大家参考,具体如下:1. 传统调用访问方式:http://127.0.0.1/demo/demo3/test?name=kk&age=22/*** Created by PhpStorm.* User: 10475* Date: 2018/8/27* Time: 22:59*/namespace app\d...

weixin_39702559的博客 653

高通camera open代码流程(hal到kernel)

内容:简单介绍Camera open代码调用流程,从HAl到kernel。(api1+hal1) 前言 Android camera api和hal对应关系。安卓在版本更新过程中,camera相关代码也经历了几个版本的更新,表现为camera HAL版本更新(HAL1->HAL2->HAL3),camera API版本更新(camera API1->camera API2),接下...

oxoo123的专栏 4277

使用thinkphp5 版本写接口创建基类及数据返回问题

最近在使用thinkphp5.0 版本做一个后端接口, 在做的过程中发现助手函数 json 在接口基类中 返回接口信息失败。 在此记录一下 话不多说,上代码。 基类控制器 <?php /** * * File BaseController * author mselect<445712421@qq.com> * DateTime 2019-09-29 * @r...

kevink的博客 1044

简单搭建 可视化日志+链路追踪

JAVA 可视化日志、链路追踪、plumeLog、Tlog、Logback

qq_39535439的博客 1206

YOLOv8首发优化:遥感目标检测 | 专为低质量遥感图像设计的边缘 - 高斯聚合(EGA)模块,解决低空间分辨率、传感器噪声、目标模糊、低光照退化和部分遮挡等限制

一种轻量级网络,其创新性地整合了专为低质量遥感图像设计的边缘 - 高斯聚合(EGA)模块。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 493

think PHP5.1接口,thinkPHP5框架接口写法简单示例

thinkphp5.1怎么写接口给前端?这是许多做过网站但没有接触过APP和小程序的PHP开发朋友们比较棘手的问题,下面就简单介绍下thinkPHP5框架接口写法简单示例,希望对大家的日常工作有所帮助。tp 具体相关写法参照官方文档,我不会 tp 来着,这是 laravel 的,但是我想大致流程还是一样的,我也是初学者。1、添加路由比如我要一个简单的访问所有文章的接口:routes/api.php...

weixin_33204522的博客 996

华为OD机试 双机位A卷 - 流量波峰 (C++ & Python & JAVA & JS & GO)

华为OD机试双机位A卷 流量波峰,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1378

ThinkPHP5.1开启swoole

# tp5.1根目录新建目录和文件server/http_server.php。让swoole做http服务,server/http_server.php写入如下: <?php $http = new swoole_http_server("0.0.0.0", 9501); $http->set( [ 'enable_static_handler' =&g...

User XXX Blog 2053

IPGUARD客户端与应用程序冲突

客户端与应用程序冲突 症状 安装客户端之后,客户端的某些程序无法运行或使用过程中出现异常,卸载客户端后恢复正常。 原因分析 可能是客户端的某些功能与应用程序发生冲突导致。 解决方法 当出现这样的情况时,可以按照以下步骤确认。 步骤1:屏蔽主动注入 在客户端配置策略中,增加配置策略hookapi_disinj,值为1;待策略同步到客户端后,重启客户端确认问题是否解决。如果解决,则转到...

IP-Guard专栏 1411

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

thinkphp5.1部署后接口访问404,nginx如何配置

ThinkPHP 5.1 部署后接口访问 404,通常是由于 Nginx 配置不正确导致的。ThinkPHP 5.1 使用了 URL 重写规则(如 index.php 作为入口文件),而 Nginx 默认不支持 .htaccess 文件,因此需要手动配置 Nginx 的 URL 重写规则。以下是解决 ThinkPHP 5....

cnzzs的博客 1194

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: php中如何获取请求头header
下一篇: 使用curl发起get、put请求
五个饺子馆
博客等级 码龄10年 4粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值