目錄
Hello Slim World
首頁 php教程 php手册 搭配修身写一个RESTful Web服务

搭配修身写一个RESTful Web服务

Jun 13, 2016 am 10:51 AM
i restful web world 創建 刪除 應用程式 搭配 服務 預設

要创建一个Hello World应用程序,删除默认的index.php文件在应用程序目录,并创建一个新的index.php文件用下面的代码:

01 02 require "Slim/Slim.php";
03
04 // create new Slim instance
05 $app = new Slim();
06
07 // add new Route
08 $app->get("/", function () {
09     echo "

Hello Slim World

";
10 });
11
12 // run the Slim app
13 $app->run();

现在是准备你的第一个修身应用。如果你通过浏览器访问index.php文件,你应该看到一个大的“Hello斯利姆世界。”
在您的应用程序中使用的Slim,你需要包括Slim.php和斯利姆,会自动加载,它需要的所有其他文件。然后,您可以创建一个或多个实例修身对象,并添加您的路线。
苗条的构造函数接受一个应用程序的配置值的数组。模式,TEMPLATES.PATH和观看一些重要的,我们经常使用的配置。使用模式设置要像开发或生产,使用的应用环境。TEMPLATES.PATH设置使用模板文件的位置。斯利姆使用Slim_View的,默认情况下,呈现的观点,但您可以编写自定义的视图处理程序,并通过使用附加苗条价值。下面的示例演示如何创建一个新的自定义修身实例TEMPLATES.PATH和设置环境的发展模式。

1 2 $app = new Slim(array(
3     "MODE" => "development",
4     "TEMPLATES.PATH' => "./templates"
5 ));

创建一个应用程序使用斯利姆是创建路线的最重要组成部分。路由帮助一个URI映射到一个特定的请求方法的回调函数。斯利姆提供一个简单而直观的方式,以相同的URI映射的方法不同的要求。它将调用的回调函数,符合当前的URI和请求方法,或产生一个404错误,如果它是无法比拟的。加入航线后,你需要调用的run()方法修身实例运行的应用程序。
写一个图书馆服务
在更深入的运动,让我们创建一个简单的图书馆管理Web服务应用程序使用超薄。在此应用中,我们就可以列出,添加,删除,更新本书详细介绍了使用Web服务调用。
下表列出了将支持Web服务的端点:
对于数据库的交互中,我将使用NotORM书面JakubVrána作为替代ORM,它提供了一个简单而直观的API来与数据库中的数据,PHP库。NotORM使用PHP的PDO扩展来访问数据库,所以PDO的实例传递给NotORM的构造。

1 2 require "NotORM.php";
3
4 $pdo = new PDO($dsn, $username, $password);
5 $db = new NotORM($pdo);

上市书籍
第一个端点列出库中所有的书籍,让我们的使用超薄创建端点并返回JSON格式的编码数据。

01 02 ...
03 $app = new Slim(
04     "MODE" => "developement",
05     "TEMPLATES.PATH' => "./templates"
06 );
07
08 $app->get("/books", function () use ($app, $db) {
09     $books = array();
10     foreach ($db->books() as $book) {
11         $books[]  = array(
12             "id" => $book["id"],
13             "title" => $book["title"],
14             "author" => $book["author"],
15             "summary" => $book["summary"]
16         );
17     }
18     $app->response()->header("Content-Type", "application/json");
19     echo json_encode($books);
20 });

()是修身的方法,路线到指定的URI上的GET请求。它的第一个参数是URI和最后一个参数是一个回调函数。使用关键字,使我们能够从匿名函数的范围内访问外部变量。
在函数中,我们创建,遍历数据库返回的每个记录(书的数组$ DB->图书()返回一个遍历参考的书籍表)。发送响应的Content-Type头为“应用程序/ json”我们发出的编码书数据阵列。
现在让我们写一本书与一个给定的ID的详细信息端点:

01 02 ...
03 $app->get("/book/:id", function ($id) use ($app, $db) {
04     $app->response()->header("Content-Type", "application/json");
05     $book = $db->books()->where("id", $id);
06     if ($data = $book->fetch()) {
07         echo json_encode(array(
08             "id" => $data["id"],
09             "title" => $data["title"],
10             "author" => $data["author"],
11             "summary" => $data["summary"]
12             ));
13     }
14     else{
15         echo json_encode(array(
16             "status" => false,
17             "message" => "Book ID $id does not exist"
18             ));
19     }
20 });

在这里,我们添加了一个参数,本书的ID传递路线。在执行这条路线,斯利姆将调用的回调函数作为参数的参数值。
请注意该参数是强制性的。您可以通过它放在像括号内可选:/书(/ ID),如果你正在做一个参数可选,不过,你将不能够指定的回调函数的参数。在这种情况下,你可以使用func_get_args()以任何参数传递给回调函数来获得。
添加和编辑书籍
现在,让我们的地址端点添加和更新图书信息负责。我们将使用后()方法来添加新的数据,并把()来更新现有的数据。

01 02 ...
03 $app->post("/book", function () use($app, $db) {
04     $app->response()->header("Content-Type", "application/json");
05     $book = $app->request()->post();
06     $result = $db->books->insert($book);
07     echo json_encode(array("id" => $result["id"]));
08 });
09
10 $app->put("/book/:id", function ($id) use ($app, $db) {
11     $app->response()->header("Content-Type", "application/json");
12     $book = $db->books()->where("id", $id);
13     if ($book->fetch()) {
14         $post = $app->request()->put();
15         $result = $book->update($post);
16         echo json_encode(array(
17             "status" => (bool)$result,
18             "message" => "Book updated successfully"
19             ));
20     }
21     else{
22         echo json_encode(array(
23             "status" => false,
24             "message" => "Book id $id does not exist"
25         ));
26     }
27 });

为应用程序请求()返回当前请求对象(Slim_Http_Request的使用POST)或把数据。你可以得到的POST值员额()这个对象的方法,使用()方法的沽值。在这里,我们假设两个POST和PUT数据信息表的列名作为键的键/值对。在现实世界的应用程序,你将需要添加一些验证和错误处理,但我已经为简单起见,这里省略。
如果你打算从浏览器访问您的修身应用,你将不能够很容易地使PUT请求,浏览器通常不公开通过HTML的方法。为了克服这个问题,修身有一个规定,它可以让你覆盖POST请求将放置在一个隐藏字段的形式。字段的名称应该是“_method”设置为“PUT”的价值。

1



3  Title:

4  Author:

5  Summary:



8

删除书籍
我们需要的下一个显而易见的事情,现在我们有添加,编辑和书单,在我们的Web服务端点,端点删除书籍。它应该接受书要删除的ID,并从数据库中删除相应的记录。
01 02 ...
03 $app->delete("/book/:id", function ($id) use($app, $db) {
04     $app->response()->header("Content-Type", "application/json");
05     $book = $db->books()->where("id", $id);
06     if ($book->fetch()) {
07         $result = $book->delete();
08         echo json_encode(array(
09             "status" => true,
10             "message" => "Book deleted successfully"
11         ));
12     }
13     else{
14         echo json_encode(array(
15             "status" => false,
16             "message" => "Book id $id does not exist"
17         ));
18     }
19 });
一切都非常简单。首先,我们取给定的ID从数据库中相应的行,就像我们已经做了的时候本书详细介绍了。行对象上调用的delete()方法从数据库中删除该记录。www.2cto.com
我们已经建立了相关的所有书籍进行必要的终点。在某些情况下,您可能希望有一个单一的路线,将响应多个请求方法。它可以实现使用的地图()的斯利姆方法。

总结

在这篇文章中,我们已经讨论了创建一个RESTful Web服务,使用超薄框架。现在,你应该能够创建自己的Web服务应用程序,没有太多的麻烦。
当然,也有很多事情比这里讨论的简单的事情可以做。你可以有很多参数,数据验证等航线。因此,深入和喜欢苗条和NoORM来帮助你实现你的目标使用的工具。


作者:ssoftware
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1327
25
PHP教程
1273
29
C# 教程
1252
24
如何將Apple Vision Pro連接到PC 如何將Apple Vision Pro連接到PC Apr 08, 2024 pm 09:01 PM

AppleVisionPro頭戴式裝置本身與電腦不相容,因此您必須將其設定為連接到Windows電腦。自推出以來,AppleVisionPro一直備受追捧,擁有其尖端功能和廣泛的可操作性,很容易理解原因。雖然您可以對其進行一些調整以適應PC,並且其功能在很大程度上取決於AppleOS,因此其功能將受到限制。如何將AppleVisionPro連接到我的電腦? 1.驗證系統要求你需要最新版本的Windows11(不支援自訂電腦和Surface設備)支援64位元2GHZ或更快的快速處理器高效能GPU,最

小紅書筆記怎麼刪除 小紅書筆記怎麼刪除 Mar 21, 2024 pm 08:12 PM

小紅書筆記怎麼刪除?在小紅書APP中是可以編輯筆記的,多數的用戶不知道小紅書筆記如何的刪除,接下來就是小編為用戶帶來的小紅書筆記刪除方法圖文教程,有興趣的用戶快來一起看看吧!小紅書使用教學小紅書筆記怎麼刪除1、先打開小紅書APP進入到主頁面,選擇右下角【我】進入到專區;2、之後在我的專區,點擊下圖所示的筆記頁面,選擇要刪除的筆記;3、進入到筆記頁面,右上角【三個點】;4、最後下方會展開功能欄,點選【刪除】即可完成。

微信拉黑再刪除永久加不上是真的嗎 微信拉黑再刪除永久加不上是真的嗎 Apr 08, 2024 am 11:41 AM

1.首先,拉黑再刪除永久加不上是假的,拉黑刪除後想要再加對方,只要對方同意即可。 2.如果用戶將某人封鎖,對方將無法向用戶發送訊息、查看用戶的朋友圈、與用戶通話。 3.封鎖並不意味著將對方從用戶的微信聯絡人清單中刪除。 4.如果用戶在封鎖後又將對方從用戶的微信聯絡人清單中刪除,那麼在刪除後是沒有辦法恢復的。 5.如果用戶想再加入對方為好友,需要對方同意並重新新增使用者。

Shazam應用程式在iPhone中無法運作:修復 Shazam應用程式在iPhone中無法運作:修復 Jun 08, 2024 pm 12:36 PM

iPhone上的Shazam應用程式有問題? Shazam可協助您透過聆聽歌曲找到歌曲。但是,如果Shazam無法正常工作或無法識別歌曲,則必須手動對其進行故障排除。修復Shazam應用程式不會花費很長時間。因此,無需再浪費時間,請按照以下步驟解決Shazam應用程式的問題。修正1–禁用粗體文字功能iPhone上的粗體文字可能是Shazam無法正常運作的原因。步驟1–您只能從iPhone設定執行此操作。所以,打開它。步驟2–接下來,開啟其中的「顯示和亮度」設定。步驟3–如果您發現啟用了“粗體文本

小紅書把別人評論刪了怎麼找回來?把別人留言刪了會有顯示嗎? 小紅書把別人評論刪了怎麼找回來?把別人留言刪了會有顯示嗎? Mar 21, 2024 pm 10:46 PM

小紅書作為一款熱門的社群電商平台,用戶之間的互動評論是平台中不可或缺的溝通方式。有時候,我們可能會發現自己的評論被其他人刪除,這種情況可能會讓我們感到困惑。一、小紅書把別人評論刪了怎麼找回來?當發現自己的評論被刪除時,首先可以嘗試在平台上直接搜尋相關的貼文或商品,查看是否還能找到該評論。如果評論被刪除後仍然顯示,那麼可能是被原帖主刪除的,這時候可以嘗試聯絡原帖主,詢問其刪除評論的原因,並要求恢復評論。如果評論已經被完全刪除且無法在原始貼文上找到,那麼在平台上恢復評論的機會相對較小。可以嘗試使用其他途徑

小紅書發怎麼刪除?發布刪除怎麼恢復? 小紅書發怎麼刪除?發布刪除怎麼恢復? Mar 21, 2024 pm 05:10 PM

小紅書作為一個受歡迎的社群電商平台,吸引了大量用戶分享生活點滴和購物心得。有時候我們可能會不經意發布一些不合適的內容,這時候需要及時刪除,這樣可以更好地維護個人形像或遵守平台規定。一、小紅書發布怎麼刪除? 1.登入小紅書帳號,進入個人首頁。 2.在個人主頁下方,找到「我的創作」選項,點選進入。 3.在「我的創作」頁面,你可以看到所有發布的內容,包括筆記、影片等。 4.找到需要刪除的內容,點選右側的「...」按鈕。 5.在彈出的選單中,選擇“刪除”選項。 6.確認刪除後,該條內容將從你的個人主頁和公開頁面消失

抖音聊天記錄怎麼徹底消除乾淨 抖音聊天記錄怎麼徹底消除乾淨 May 07, 2024 am 11:14 AM

1.開啟抖音app,點選介面底部的【訊息】,點選需要刪除的聊天對話入口。 2.長按任一聊天記錄,點選【多選】,勾選想要刪除的聊天記錄。 3.點選右下角的【刪除】按鈕,在彈出的視窗中選擇【確認刪除】即可將這些記錄永久刪除。

如何發布小紅書內容?發布小紅書內容怎麼刪除? 如何發布小紅書內容?發布小紅書內容怎麼刪除? Mar 21, 2024 pm 04:10 PM

隨著社群媒體的不斷發展,小紅書成為了年輕人分享生活、發現潮流、獲取靈感的重要平台。在這個充滿活力的社群裡,如何發布高品質的內容,吸引更多的關注和點贊,成為了許多用戶關心的問題。一、如何發布小紅書內容?在創作之前,選擇一個合適的主題至關重要。你可以根據自己的興趣和專長來挑選一個吸引人的主題。這樣做不僅能讓你在寫作過程中保持熱情,還能讓讀者更容易與你的作品產生共鳴。 2.精心設計標題:標題是吸引讀者點擊的關鍵,應該簡潔明了,同時要具有一定的吸引力和引人入勝的特點。避免使用誇張的措辭,以免讀者產生反

See all articles