[2
此站点点系列探索了REST原理。 本文展示了使用Slim(由Sinatra(Ruby))启发的PHP微型框架的Slim构建一个安息的Web服务。 Slim的轻质性质,具有核心组件,例如路由,请求/响应处理和最少的视图支持,使其非常适合简单的REST API。
[2
将uris映射到特定HTTP方法的回调函数。 Slim有效地处理同一URI的多种方法。
图书馆管理应用程序示例通过Web Service Call显示列表,添加,删除和更新账面详细信息。 Notorm,轻型PHP数据库库,处理数据库交互。[2 从下载Slim开始。 此示例使用5.3样式。创建
index.php设置环境(开发/生产),
模板指定模板目录。 自定义视图处理程序可以替换默认
slim_view 。例子:
路线创建至关重要。 路由将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()
"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