」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > PHP達人 | 使用Slim框架編寫RESTful Web服務

PHP達人 | 使用Slim框架編寫RESTful Web服務

發佈於2025-04-14
瀏覽:909

[2

此站点点系列探索了REST原理。 本文展示了使用Slim(由Sinatra(Ruby))启发的PHP微型框架的Slim构建一个安息的Web服务。 Slim的轻质性质,具有核心组件,例如路由,请求/响应处理和最少的视图支持,使其非常适合简单的REST API。 [2 PHP Master | Writing a RESTful Web Service with Slim

Slim是PHP Micro-FrameWork,非常适合直接的Restful服务,支持PHP 5.2和Proceding和(5.3)功能编程样式。

将uris映射到特定HTTP方法的回调函数。 Slim有效地处理同一URI的多种方法。

图书馆管理应用程序示例通过Web Service Call显示列表,添加,删除和更新账面详细信息。 Notorm,轻型PHP数据库库,处理数据库交互。

[2 从下载Slim开始。 此示例使用5.3样式。创建

index.php
  • get(“/”,function(){ echo“
  • ”; }); $ app-> run(); ?>
  • 在您的浏览器中访问
  • )。 设置环境(开发/生产),模板指定模板目录。 自定义视图处理程序可以替换默认 slim_view 。例子:
  • “开发”, “ templates.path” =>“ ./templates” ); ?>

路线创建至关重要。 路由将URI映射到基于HTTP方法的回调函数。 Slim优先考虑第一个匹配路线;无与伦比的请求导致404错误。 定义路由后,调用 run()

启动应用程序。

让我们创建一个库管理服务。 notorm简化了数据库交互(需要一个PDO实例)。

get("/", function () {
    echo "

Hello Slim World

"; }); $app->run(); ?>

handles get requests。 使用允许在匿名函数中访问外部变量。响应标头设置为 application/json ,并且书籍数据被编码为json。 [2 通过ID检索一本书: get(“/book/:id”,功能($ id)使用($ app,$ db){ $ app-> wenders() - >标题(“ content-type”,“ application/json”); $ book = $ db-> books() - >其中(“ id”,$ id); 如果($ data = $ book-> fetch()){ echo json_encode(array(array)( “ id” => $ data [“ id”], “ title” => $ data [“ title”], “作者” => $ data [“作者”], “摘要” => $ data [“摘要”] ); } 别的 { echo json_encode(array(array)( “状态” => false, “消息” =>“书ID $ ID不存在” ); } }); // ...(其余代码)... 路由参数:id 传递给回调函数。 可选参数使用/book(/:id)。 对于无显式回调参数的可选参数,请使用 func_get_args()

。 [2 [2
 "development",
    "TEMPLATES.PATH" => "./templates"
));
?>
_方法

delete(“/book/:id”,函数($ id)使用($ app,$ db){ $ app-> wenders() - >标题(“ content-type”,“ application/json”); $ book = $ db-> books() - >其中(“ id”,$ id); 如果($ book-> fetch()){ $ result = $ book-> delete(); echo json_encode(array(array)( “状态” => true, “消息” =>“成功删除的书” ); } 别的 { echo json_encode(array(array)( “状态” => false, “消息” =>“书ID $ ID不存在” ); } }); // ...(其余代码)...

方法删除数据库记录。

map()方法在单个路由上处理多个http方法(此处未显示)。

结论:

本文演示了使用Slim构建基本的RESTFUL Web服务。  进一步的开发应包括可靠的错误处理和输入验证。  源代码(此处不包括)可以在GitHub上找到(原始文本中未提供链接)。  原始文本的常见问题解答部分被省略,因为它可以通过Slim的文档提供基本信息。
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3