PHP REST API 路由

2024-04-07

我一直在研究 API 并为我们正在进行的项目开发 REST API。

API 只接受来自一个 JSON 格式的源的连接,我理解这一点很好。

如果理解了所说的大部分内容,但是我不明白第三个代码示例以及路由信息的去向。

他们提供的例子是:

$data = RestUtils::processRequest();

switch($data->getMethod)
{
    case 'get':
        // retrieve a list of users
        break;
    case 'post':
        $user = new User();
        $user->setFirstName($data->getData()->first_name);  // just for example, this should be done cleaner
        // and so on...
        $user->save();
        break;
    // etc, etc, etc...
}

我不确定的部分是如何接受原始请求,即 /get/user/1 - 如何将其路由到脚本的正确部分。

如果还有另一个问题(我已经搜索了相当长一段时间)或任何进一步的教育示例,请为我指出正确的方向。

Update

我在那里找到了一些路由 PHP 类,但没有什么是很小的,并且按照它上面所说的那样做,所有东西似乎都在做路由 + 2000 个其他的事情。

现在,我已将这个项目所需的所有类命名为我希望从 URI 访问它们,即:

/数据/用户 /数据/用户/1 /哈希/用户 /哈希/用户/1 /put/users/1?json={数据}

所以所有这些都应该使用users类,然后是数据、散列或 put 方法之一,将其后的任何附加内容作为参数传递到方法中。

如果有人能解释一下这一点是如何工作的,那将是一个巨大的帮助!

谢谢 :)


从一开始,您指出的网站似乎不包含路由器或调度程序。有很多 PHP5 框架,其中包括路由和/或调度或一些描述。 (http://en.wikipedia.org/wiki/Comparison_of_Web_application_frameworks#PHP http://en.wikipedia.org/wiki/Comparison_of_Web_application_frameworks#PHP)

路由器是一个具有预定义路由列表的类,这些路由可能非常基本,也可能非常复杂,这一切都取决于您想要执行的操作。在我看来,一个好的 REST 路由器应该是这样的:

:module/:controller/:params

然后路由器会根据 HTTP 请求(GET、POST、PUT、DELETE、OPTIONS)路由到正确的操作

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

PHP REST API 路由 的相关文章

  • 如何在 Zend Framework 中存储 cron 作业的脚本?

    因为 ZF 的所有 URL 都依赖于 mod 重写 所以我并不清楚应该在哪里存储用于 cron 作业的本地脚本 有人有什么建议 或者有 正式接受 的方式吗 我用模块化目录结构 http framework zend com manual e
  • 具有动态表单名称的 form_widget

    在我的 Twig 模板中 我有一个 FOR 循环 它创建多个表单 如下所示 for thing in things set form id myform thing Id set form name attribute form myfor
  • 如何将 PHPMailer 与 Codeigniter 3 集成

    嗨 我正在尝试使用PHPMailer 库 https github com PHPMailer PHPMailer来自我的 Codeigniter 应用程序中的 GitHub 我下载了代码并解压到我的application library文
  • 在Wordpress中通过API创建新用户时如何发送电子邮件密码?

    可以使用以下行通过 API 创建新用户 user id wp insert user user data 我想知道如何向新创建的用户发送包含其密码的电子邮件 Wordpress API 中是否有任何函数可以处理这项工作 还是我应该自己创建并
  • 如何从导出的 csv 文件中删除双引号

    我正在使用 Laravel 5 8 并且添加了 Maatwebsite 包 用于从数据库表导出 CSV 文件 这是我导出的类 class ConfirmedExport implements FromCollection WithHeadi
  • php 中的简单授权/登录功能

    我希望第一次实现用户登录到我的网站 我很高兴构建自己的解决方案 或者实现一些开源的东西 但是到目前为止 在我的搜索中没有任何包是明显的选择 同样 我完全意识到 作为一名中级 php 程序员 如果我推出自己的解决方案 并真正敞开大门 我很可能
  • Laravel 按动态 ID 数组对集合进行排序 [重复]

    这个问题在这里已经有答案了 我有以下 people array 5 2 9 6 11 people collection People find people 但当我倾倒并死去时 people collection集合按 ID ASC 排序
  • Laravel 5.2 带有可变参数的命名路由用法

    我有这样的路线 Open New Subscription page Route get account subscriptions create menu uses gt Subscriptions SubscriptionControl
  • 使用 DOJO 自动完成文本框

    我正在寻找一种使用 DOJO 进行文本框自动建议的简单方法 我将查询的数据库表 使用 PHP 脚本 以 JSON 形式返回 有超过 100 000 条记录 因此这确实不应该采用 FilteringSelect 或 ComboBox 的形式
  • 无法实例化模块 [$injector:unpr] 未知提供程序:$routeProvider

    我从 AngularJS 升级时收到此错误1 0 7 to 1 2 0rc1 ngRoute 模块不再是核心的一部分angular js文件 如果您继续使用 routeProvider 那么您现在需要包括angular route js在你
  • 通过JS Laravel访问存储目录

    有没有办法访问storage目录 该目录已经链接到publicJS 中的目录 我正在尝试制作一个上传图片的表单 验证脚本 if request gt hasFile photos marker gt photos request gt ph
  • postgreSQL 在 WAMP 上的集成

    我刚刚在 Windows 7 上安装了 postgreSQL 我正在尝试将 postgreSQL 与 WAMP 服务器集成 为此 我在 httpd conf 和 php ini 文件中进行了以下更改 1个加载模块c path to libp
  • 如何在php中使用preg添加html属性

    我正在寻找在 php 中编写一个脚本来扫描 html 文档并根据它找到的内容向元素添加新标记 更具体地说 我是扫描文档并为每个元素搜索CSS标记 float right left 如果找到它 它会添加align right left 基于它
  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • 最适合“正在进行的作业”的 HTTP 状态代码

    向客户端提供的最合适的 HTTP 状态代码是什么 表示 您的请求很好 但仍在进行中 请稍后在完全相同的位置回来查看 例如 假设客户端提交初始请求以启动繁重的查询 服务器立即返回一个 URL 客户端可以定期轮询该 URL 以获取结果 如果客户
  • php 表单提交 - Q2

    我对这个虚拟问题感到抱歉 这是我的简单 PHP 表单 其中包含两个 SQL 表和 ADD 提交 按钮 我希望将人员从 Test1 转移到 Test2 很多事情都很好 只有提交按钮不起作用 因此 Test2 表没有反馈 Revised 现在提
  • mysqli bind_param 中的 NULL 是什么类型?

    我正在尝试将参数绑定到 INSERT INTO MySQLi 准备好的语句 如果该变量存在 否则插入 null 然后我知道 type variable i corresponding variable has type integer d
  • 检查文件权限

    我怎样才能检查file permissions 无需通过运行操作系统特定命令passthru or exec Use 文件权限 http php net fileperms功能 clearstatcache echo substr spri
  • 如何使用 Google 帐户对我们网站中的用户进行身份验证

    如何在我们的网站中使用 Google 帐户对用户进行身份验证 我希望用户重定向到谷歌登录页面 然后将他重定向到我的网站 我想要这个 PHP 实现 你要OAuth http code google com apis accounts docs
  • 文件修改时间检查的成本

    对于Linux下包含少量字节的文件 我只需要处理自上次处理以来发生更改的时间 我通过调用 PHP 检查文件是否被更改clearstatcache filemtime 定期 由于整个文件总是很小 因此删除对 filemtime 的调用并通过将

随机推荐

  • 使用 ejs 重建 webpack-dev-server

    我使用 webpack dev server 进行以下配置 import webpack from webpack import autoprefixer from autoprefixer import ExtractTextPlugin
  • 数据表 - 对多个列应用相同的函数以创建新的数据表列

    我正在使用 data table 包 我有一个数据表 代表用户在网站上的操作 假设每个用户都可以访问一个网站 并对其执行多项操作 我的原始数据表包含操作 每一行都是一个操作 我想将这些信息聚合到一个新的数据表中 并按用户访问进行分组 每次访
  • 错误:使用 Sass 的 Angular 组件中未定义变量

    我遇到此错误 看起来我没有将变量导入到组件中 但这是我的style scss You can add global styles to this file and also import other style files Foundati
  • 自定义文件中的 AppSettings

    我正在努力处理 NET 2 0 中的配置和设置类 如果以下内容包含在名为的文件中app config
  • SceneKit 修改 3D 对象并导出文件

    在我的应用程序中 我使用 SceneKit Framework 在 SCNView 中显示 3D 对象 并导出修改后的文件 并进行一些小的更改 如颜色 温度等 但在将其导出到文档文件夹后 我得到了原始文件 在这里我可以显示 3D 对象并对其
  • 将 GCC 编译器安装到 Docker 容器上

    我正在尝试将 mono 包安装到 Docker 容器上 但是 mono 需要 git autoconf libtool automake build essential mono devel gettext 包 我遇到的问题是 libtoo
  • 在 Rails ActiveRecord 验证期间更改或更新属性值

    Summary 我正在尝试更改属性的值within一个习俗ActiveModel EachValidator验证器 给出以下原型 def validate each record attribute value 试图设置value thin
  • ldd 输出静态链接到共享库

    我正在尝试创建一个共享库 libddv3djava so 我编译 libddv3djava so 的源代码 如下所示 Programming intellijprojects ddv3dbindingstest src g c Wall W
  • Numpy `ValueError:操作数无法与形状一起广播...` [重复]

    这个问题在这里已经有答案了 我使用 python 2 7 并尝试对从 1 00000000 到 3 0000000008 的一些随机数据进行预测 我的数组中有大约 196 个项目 但出现错误 ValueError operands coul
  • 在结构体中定义宏背后的逻辑是什么?

    正如标题所示 我质疑在结构体中定义宏的原因 我经常在网络编程中看到这种方法 例如以下代码片段 struct sniff tcp u short th sport source port u short th dport destinatio
  • WPF 启动屏幕直到 Windows 结束加载

    我有一个应用程序在窗口加载时消耗大量时间 在 Window load 事件中 我从数据库读取一些控件的状态和名称 我想做一个启动画面 该启动画面将在窗口完全加载后结束 我尝试过这个例子http www codeproject com KB
  • PHP 5:const 与 static

    在 PHP 5 中 使用和使用有什么区别const and static 分别什么时候合适 以及起什么作用public protected and private玩 如果有的话 在类的上下文中 静态变量位于类范围 而不是对象 范围内 但与
  • 通过删除代码注释来优化网站?

    我想知道从 php js css html 和类似文件中删除代码注释是否有任何 明显的 性能改进 大多数情况下不是 现代 CPU 的速度非常快 最显着的改进是下载速度的速度 删除通过网络发送到浏览器的任何不必要的注释 缩小 CSS Java
  • Objective-C TRUE/FALSE 与 true/false

    在 Objective C 中 我们有不同的关键字来评估布尔值 我们有YES NO TRUE FALSE and c99 true false 我明白BOOL vs bool很好 这篇文章很好地解释了这些差异 http www bigner
  • 是否有用于读取血压数据的 Google Fit REST API?

    谷歌文档提到了专门写入血压数据 https developers google com fit scenarios write bp data https developers google com fit scenarios write
  • MSI 与 nuget 包:哪个更适合持续交付?

    我们来讨论一下下面的话题 目前有一个应用程序正在使用熟悉的 xcopy 方法进行部署 这种方法使得管理依赖项 文件更新等变得困难 有一个想法是在一些软件包的帮助下开始应用程序部署 就像在 Linux 中借助RPM http en wikip
  • 检查 Qunit 是否正确加载图像

    我正在尝试验证图像URLs with Qunit通过将 URL 设置为src测试图像的属性并检查error事件处理程序是否顺利 到目前为止我所拥有的是 test image function var test image test imag
  • rstudioapi AskForPassword 不屏蔽用户名输入

    有没有办法禁用 rstudioapi askForPassword 弹出窗口中的屏蔽 以便用户可以输入他们的用户名 我正在构建一个可以与我的团队共享的函数 用于使用 ROracle pacakge 连接到我们的 Oracle 数据库实例 目
  • 为什么在传递给参数时不能隐式构造一个给定合适构造函数的对象?

    在下面的示例中 为什么我不能简单地传递一个string to the printFoo include
  • PHP REST API 路由

    我一直在研究 API 并为我们正在进行的项目开发 REST API API 只接受来自一个 JSON 格式的源的连接 我理解这一点很好 如果理解了所说的大部分内容 但是我不明白第三个代码示例以及路由信息的去向 他们提供的例子是 data R