PhalApi 2.x 开发文档 运行Hello World 编写第一个API接口

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

运行Hello World

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

编写一个接口

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

./src/
└── app
    ├── Api # 放置接口源代码,相当于控制器层
    ├── Common # 公共代码目录,放置工具等
    ├── Domain # 领域业务层,负责业务逻辑和处理
    ├── functions.php
    └── Model # 数据源层,负责数据持久化存储及操作

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

// 文件 ./src/app/Api/Hello.php
  1 <?php
  2 namespace App\Api;
  3 
  4 use PhalApi\Api;
  5 
  6 /**
  7  * 第一个接口
  8  */
  9 class Hello extends Api {
 10 
 11     public function getRules() {
 12         return array(
 13             'world' => array(
 14                 'username' => array('name' => 'username', 'desc' => 'B站账号名称'),
 15             ),
 16         );
 17     }
 18 
 19     /**
 20      * 接口名称-欢迎B站
 21      * @desc 欢迎B站的同学,bilibili!!
 22      */
 23     public function world() {
 24         return array('content' => 'Hello ' . $this->username);
 25     }
 26 }

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

  • 1、默认所在命名空间必须为App\Api (第2行)
  • 2、具体实现的接口类必须是PhalApi\Api的子类 (第4行、第9行)
  • 3、定义接口方法,必须为public访问权限 (第23行)
  • 4、接口参数,放置在getRules()函数方法中 (第11行)
  • 5、返回业务的数据,对应data返回字段,推荐返回对象结构,方便扩展 (第24行)

## 访问一个接口

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

组成部分 是否必须 默认值 说明
Namespace 可选 App Api命名空间前缀,多级命名空间时用下划线分割,缺省命名空间为App
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 简单的接口开发了!

相关文章
|
4天前
|
JSON API 数据格式
淘宝 / 天猫官方商品 / 订单订单 API 接口丨商品上传接口对接步骤
要对接淘宝/天猫官方商品或订单API,需先注册淘宝开放平台账号,创建应用获取App Key和App Secret。之后,详细阅读API文档,了解接口功能及权限要求,编写认证、构建请求、发送请求和处理响应的代码。最后,在沙箱环境中测试与调试,确保API调用的正确性和稳定性。
|
16天前
|
供应链 数据挖掘 API
电商API接口介绍——sku接口概述
商品SKU(Stock Keeping Unit)接口是电商API接口中的一种,专门用于获取商品的SKU信息。SKU是库存量单位,用于区分同一商品的不同规格、颜色、尺寸等属性。通过商品SKU接口,开发者可以获取商品的SKU列表、SKU属性、库存数量等详细信息。
|
17天前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
|
27天前
|
编解码 监控 API
直播源怎么调用api接口
调用直播源的API接口涉及开通服务、添加域名、获取API密钥、调用API接口、生成推流和拉流地址、配置直播源、开始直播、监控管理及停止直播等步骤。不同云服务平台的具体操作略有差异,但整体流程简单易懂。
|
7天前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
1月前
|
人工智能 自然语言处理 PyTorch
Text2Video Huggingface Pipeline 文生视频接口和文生视频论文API
文生视频是AI领域热点,很多文生视频的大模型都是基于 Huggingface的 diffusers的text to video的pipeline来开发。国内外也有非常多的优秀产品如Runway AI、Pika AI 、可灵King AI、通义千问、智谱的文生视频模型等等。为了方便调用,这篇博客也尝试了使用 PyPI的text2video的python库的Wrapper类进行调用,下面会给大家介绍一下Huggingface Text to Video Pipeline的调用方式以及使用通用的text2video的python库调用方式。
|
17天前
|
JSON 前端开发 JavaScript
API接口商品详情接口数据解析
商品详情接口通常用于提供特定商品的详细信息,这些信息比商品列表接口中的信息更加详细和全面。以下是一个示例的JSON数据格式,用于表示一个商品详情API接口的响应。这个示例假定API返回一个包含商品详细信息的对象。
|
1月前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
23天前
|
JSON API 开发者
1688API商品详情接口如何获取
获取 1688 API 商品详情接口的步骤包括:1. 注册开发者账号;2. 了解接口规范和政策;3. 申请 API 权限;4. 获取 API 密钥;5. 实现接口调用(选择开发语言、发送 HTTP 请求);6. 处理响应数据。通过这些步骤,可以顺利调用 1688 的商品详情 API。
|
2月前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
107 6