1.2 PhalApi 运行Hello World

2023-10-30

运行Hello World

此文章假设你已成功安装PhalApi2项目,如果尚未安装,可阅读下载与安装

编写一个接口

在PhalApi 2.x 版本中,项目源代码放置在/path/to/PhalApi2/src目录中。里面各个命名空间对应一个子目录,默认命名空间是app,里面主要有Api、Domain、Model这三个目录以及存放函数的functions.php文件。例如像是这样的目录结构:

./src/
└── app
    ├── Api
    ├── Domain
    ├── functions.php
    └── Model

当需要新增一个接口时,先要在Api层添加一个新的接口文件。例如对于Hello World示例,可以使用你喜欢的编辑器创建一个./src/app/Api/Hello.php文件,并在里面放置以下代码。

// 文件 ./src/app/Api/Hello.php
<?php
namespace App\Api;

use PhalApi\Api;

class Hello extends Api {

    public function world() {
        return array('title' => 'Hello World!');
    }
}

编写接口时,需要特别注意:

  • 1、默认所在命名空间必须为App\Api
  • 2、具体实现的接口类必须是PhalApi\Api的子类。

访问一个接口

通常情况下,建议可访问的根路径设为/path/to/PhalApi2/public。若未设置,此时接口访问的URL格式为:接口域名/public/?s=Namespace.Class.Action。其中,s参数用于指定待请求的接口服务,由三部分组成。分别是:

组成部分 是否必须 默认值 说明
Namespace 可选 App Api命名空间前缀,多级命名空间时用下划线分割
Class 必须 待请求的接口类名,通常首字母大写
Action 必须 待请求的接口类方法名,通常首字母大写。若Class和Action均未指定时,默认为Site.Index

温馨提示:s参数为service参数的缩写,即使用?s=Class.Action等效于?service=Class.Action,两者都存在时优先使用service参数。

例如,上面新增的Hello World接口的访问链接为:

http://dev.phalapi.net/?s=Hello.World

或者可以使用完整的写法,带上命名空间App:

http://dev.phalapi.net/?s=App.Hello.World

接口返回

默认情况下,接口的结果以JSON格式返回,并且返回的顶级字段有状态码ret、业务数据data,和错误提示信息msg。其中data字段对应接口类方法返回的结果。如Hello Wolrd示例中,返回的结果是:

{"ret":200,"data":{"title":"Hello World!"},"msg":""}

JSON可视化后是:

{
    "ret": 200,
    "data": {
        "title": "Hello World!"
    },
    "msg": ""
}

恭喜!你已顺便完成PhalApi 2.x 简单的接口开发了!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1.2 PhalApi 运行Hello World 的相关文章

  • 解决wsl和vmware冲突问题

    CMD管理员模式启动 输入bcdedit set hypervisorlaunchtype auto开启 则可以使用WSL CMD管理员模式启动 输入bcdedit set hypervisorlaunchtype off关闭 则可以使用V
  • vue-amap 地图定位打卡

    1 注册并登录高德开放平台 1 首先 注册开发者账号 成为高德开放平台开发者 2 登陆之后 在进入 应用管理 页面 创建新应用 3 为应用添加 Key 4 添加成功后 可获取到key值和安全密钥jscode 自2021年12月02日升级 升
  • 71.编写input()和output()函数的输入,输出5个学生的数据记录

    include
  • 使用 EasyExcel 读取和下载 excel 文件

    前言 EasyExcel是阿里巴巴开源的一个excel处理框架 以使用简单 节省内存著称 EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中 而是从磁盘上一行行读取数据 逐个解析 Easy
  • Java基础(面向对象,继承,抽象类,接口,多态)

    文章目录 JAVA基础 面向对象 笔记整理 JAVA基础 面向对象 笔记整理 面向对象概述 1 面向对象的思想来源生活 2 任何的对象从两个方面描述 静态属性 动态属性 3 创建一个类 其实就创建了一个模板 4 创建了一个类就是创建了一个新
  • AVS、MPEG-2、H.264 标准文档

    几年前 做过一些 AVS H 264 的编解码工作 收集了一点标准文档及开源代码 这些我都分享在前一个博客 http sep blog chinaunix net 由于该博客的文件分享都失效了 因此有不少童鞋找到这里联系上我 为了方便大家
  • vue中配置别名

    在根目录创建名为 jsconfig json 的文件 compilerOptions baseUrl paths src exclude node modules dist
  • 深度解析StringBuilder

    深度解析StringBuilder 基本介绍 1 StringBuilder 是一个可变的字符序列 此类提供一个与StringBuffer兼容的API 但不保证同步 StringBuilder 不是线程安全的 此类被设计用作StringBu
  • stable diffusion实践操作-图片生文字到图片

    本文专门开一节写 文字图片相关的内容 在看之前 可以同步关注 stable diffusion实践操作 正文 1 png 图片提取信息 SD可以从png图片中提取信息 然后在来生成图片 1 1 保存png 到liblib网站 下载png图片
  • IDEA在Web项目部署时没有Artifact选项的解决方法

    1 现象 使用Intellij IDEA配置Web项目时 如下图所示 选择Deployment后点击 没有出现Artifact选项 2 解决方法 1 在Intellij IDEA开发菜单栏中 选择 File gt Project Struc
  • python requests post和get请求,并把结果写入json文件中

    今天在分析网页的时候 发现需要利用requests请求 得到数据 然后这会经常用到 虽然简单 但是容易忘记 所以我这里记录一下我用的python requests的demo文件 post请求 import requests json hea
  • zabbix数据库添加主从同步

    zabbix数据库正常运行的情况下 做mysql主从同步添加从库操作 一 在从库主机上安装mysql 注 版本与主库master一致 1 1 创建用户 groupadd mysql useradd r g mysql mysql 1 2 上
  • 服务器系列和酷睿系列,至强cpu与酷睿两个系列之间有什么区别?

    很多朋友选购英特尔处理器时 会纠结于酷睿与至强两个系列之间就 不知如何选择 标致左酷睿 右至强 酷睿系列CPU如i3 i5 i7是我们一般消费者最为熟悉的 它也是针对大部分家用桌面级消费者开发的中高端处理器 当然也包括低端的G系列的赛扬处理
  • (第一章)嵌入式linux之常用汇编指令

    1 处理器内部数据传输指令 数据传输指令分为 一般寄存器间的数据传输或者 特殊寄存器与一般寄存器间的数据传输 数据传输常用的指令有三个 MOV MRS 和 MSR 用法示例 1 MOV 指令 MOV R0 R1 将寄存器 R1 中的数据传递
  • 基于百度飞桨PaddlePaddle和PARL复现PPO强化学习算法

    文章目录 一 PPO训练效果展示 Mujoco HalfCheetah v2 二 策略优化算法发展回顾 三 PPO 算法论文阅读 1 Introduction 2 Background Policy Optimization 2 1 Pol
  • R语言使用RMySQL连接及读写Mysql数据库

    简单说下安装过程 一般不会有问题 重点是RMySQL的使用方式 系统环境说明 Redhat系统 Linux 460 42 6 32 431 29 2 el6 x86 64 系统编码 LANG zh CN UTF 8 中文UTF 8格式 my
  • Access Token是做什么的

    我们在访问很多大公司的开放 api 的时候 都会发现这些 api 要求传递一个 access token 参数 这个参数是什么呢 需要去哪里获取这个 access token 呢 access token 是在 Oauth2 0 协议中 客

随机推荐

  • ag-Grid的基本用法一(表格列的定义)

    最近在研究基于angular2 的表格的用法 发现一种非常好用的表格 就是ag grid ag grid不仅对angular1 x有支持 还支持react vue等目前主流的前端框架 这里我们只是对angular2 中的ag grid进行讲
  • 朴素贝叶斯分类器:R语言实现

    span style font family none background color rgb 255 255 255 span span style font family none background color rgb 255 2
  • flask中request.args和request.form区别

    app route ajaxget1 def ajax test get server name request args get server name server ip request args get server ip print
  • 前端的反单引号语法之`${}`

    es6中新增的字符串方法 可以配合反单引号完成拼接字符串的功能 1 反单引号怎么打出来 将输入法调整为英文输入法 单击键盘上数字键1左边的按键 2 用法 step1 定义需要拼接进去的字符串变量 step2 将字符串变量用 包起来 再写到需
  • c语言打开文本有什么作用,c语言文件打开方式有哪些

    c语言文件打开方式有哪些 ANSI C规定文件打开用函数fopen 关闭为fclose 1 调用方式通常为 FILE fp fp fopen 文件名 打开方式 2 参数说明 文件名 形如 myfile dat F data myfile d
  • 数据序列相关性-ACF,PACF和CCF

    引言 最近写论文关于预测的特征选择遇到一些问题 想把自己查询学习到的东西整理记录一下 理一理头绪 希望能加深自己对这些东西的理解 首先介绍引入几个概念 自相关函数 autocorrelation function ACF 偏自相关函数 pa
  • OLED透明屏全贴合技术:未来显示技术的突破性创新

    在现代科技发展的浪潮中 OLED透明屏全贴合技术以其独特的优势和无限的应用前景引起了广泛的关注 在这篇文章中 尼伽将深入探索OLED透明屏全贴合技术 介绍其优势和特点 并展望其在不同领域的应用前景 一 OLED透明屏全贴合技术 OLED透明
  • pytorch:批训练(batch_training)

    一 什么是批训练 批训练 意思是把整套训练数据分成数个批次进行训练 每个批次从数据中选取 n num 总数据 n batch 批次 个数据 直到把整套数据训练完成 举个例子 有10个输入训练数据 每个批次训练3个数据 这训练完成需要4个批次
  • 手机摄像头组成结构和工作原理

    手机摄像头的组成结构和工作原理 手机摄像头的组成结构和工作原理 手机摄像头由 PCB板 镜头 固定器和滤色片 DSP CCD用 传感器等部件组成 工作原理为 拍摄景物通过镜头 将生成的光学图像投射到传感器上 然后光学图像被转换成电信号 电信
  • html 分割线_html基础必备-分隔标记,前端小白一看就会

    分节 分区和分割线 这些标记用于将页面分成多个部分 熟练地掌握这些标记将意味着构建出具有良好的结构和布局的页面 使其更加友好和易于阅读 分区 div标记定义了HTML文件中的一个部分或分区 它通常包含需要组合在一起的标题 段落 表格或其他元
  • python写excel文件不覆盖_python向已存在的excel中新增表,不覆盖原数据的实例

    每月需更新某个excel表格 进行两项操作 且不覆盖原有的sheet 1 在原来的excel表中新增sheet 2 往原有的excel表中的某张sheet新增内容 基于python3 使用xlrd xlwt 具体代码如下 亲测有效 希望对大
  • 软件测试分级理论

    软件测试是软件工程当中不可或缺的一个过程 在软件工程中 测试者充当 虚拟用户 对软件产品进行检验 只有经过严格测试的软件产品 才能发布给用户使用 只要有软件的地方 就有软件测试 软件测试是一个包罗万象的话题 这种 包罗万象 的具体表现之一就
  • 工控安全PLC固件逆向一

    在工控领域 我们会遇到许多协议 为了进行安全研究 经常需要对协议的具体内容进行探索 今天我们就来聊聊关于工控协议逆向的问题 接下来会简单介绍一下常用的协议逆向方法并配合一些实战 当然 从未知到已知的探索过程不仅仅需要代码上的实践 还需要数学
  • React - getSnapshotBeforeUpdate() 的使用

    getSnapshotBeforeUpdate 方法 1 在render之前调用 state已更新 2 典型场景 获取render之前的dom状态 我们来看一个例子 每一秒钟都会加入一个新的 div msg number div 假如我们使
  • 一次网络不通“争吵”引发的思考

    为啥争吵 吵什么 你到底在说什么啊 我K8s的ecs节点要访问clb的地址不通和本地网卡有什么关系 气愤语气都从电话那头传了过来 这时电话两端都沉默了 过了好一会传来地铁小姐姐甜美的播报声打断了刚刚的沉寂 乘坐地铁必须全程佩戴口罩 下一站西
  • 终止代码driver_irql_not_less_or_equal

    终止代码driver irql not less or equal McAfee和Zone Alarm是导致问题的原因 因此 我们建议卸载它们
  • Stable Diffusion web UI 安装、启动脚本、常见问题、插件(linux)

    Stable Diffusion本身是一个模型 对于大多数想试试的人来说 使用这个web ui版本最合适 建议先看完再动手 虽然不难但是有门槛 主要要解决网络问题 如果深入需要会python 如果只是想试试的 建议直接下载别人打好的包 自己
  • J2EE 高并发体系详解--HTTP Session 失效转移

    HTTP Session 失效转移 几乎所有流行的 J2EE 供应商都在他们的集群产品中实现了 Http Session 失效转移 用来保障当某台服务器失效后会话状态不会丢失 使客户端请求能被正确处理 如图 6 所示 当浏览器访问有状态的
  • 光学单位定义-照度 lux

    照度的单位 勒克斯 勒克斯 lux 法定符号lx 是照度 luminance 的单位 定义 在1平方米面积上所得的光通量是1流明时 它的照度是1勒克斯 照度是反映光照强度的一种物理量 其物理意义是照射到单位面积上的光通量 照度的单位是每平方
  • 1.2 PhalApi 运行Hello World

    运行Hello World 此文章假设你已成功安装PhalApi2项目 如果尚未安装 可阅读下载与安装 编写一个接口 在PhalApi 2 x 版本中 项目源代码放置在 path to PhalApi2 src目录中 里面各个命名空间对应一