目次
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 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Apple Vision ProをPCに接続する方法 Apple Vision ProをPCに接続する方法 Apr 08, 2024 pm 09:01 PM

Apple Vision Pro ヘッドセットはコンピュータとネイティブ互換性がないため、Windows コンピュータに接続するように設定する必要があります。 Apple Vision Pro は発売以来、最先端の機能と充実した操作性を備えた大ヒット商品です。その理由は簡単にわかります。ただし、お使いの PC に合わせて調整することはできますが、その機能は AppleOS に大きく依存しているため、機能は制限されます。 AppleVisionPro をコンピュータに接続するにはどうすればよいですか? 1. システム要件を確認します 最新バージョンの Windows 11 が必要です (カスタム PC および Surface デバイスはサポートされていません) 64 ビット 2GHZ 以上の高速プロセッサをサポート 高性能 GPU、最大

小紅書メモを削除する方法 小紅書メモを削除する方法 Mar 21, 2024 pm 08:12 PM

小紅書メモを削除するにはどうすればよいですか? メモは小紅書アプリで編集できます。ほとんどのユーザーは小紅書メモの削除方法を知りません。次に、エディターがユーザーに小紅書メモの削除方法に関する写真とテキストを提供します。チュートリアル、興味のあるユーザーが来て、それを受講してください見てください!小紅書使い方チュートリアル 小紅書メモの削除方法 1. まず小紅書アプリを開いてメインページに入り、右下隅の[自分]を選択して特別エリアに入ります; 2. 次に、マイエリアで、表示されているメモページをクリックします下の図で、削除したいメモを選択します; 3. メモページに入り、右上隅の [3 つの点] をクリックします; 4. 最後に、下部に機能バーが展開され、[削除] をクリックして完了します。

WeChat でブロックされたり削除されたり、永久に追加できなくなったりする可能性があるというのは本当ですか? WeChat でブロックされたり削除されたり、永久に追加できなくなったりする可能性があるというのは本当ですか? Apr 08, 2024 am 11:41 AM

1. まず、相手を永久にブロックして削除して永久に追加しないのは間違いで、ブロックして削除した後に相手を追加したい場合は、相手の同意だけが必要です。 2. ユーザーが誰かをブロックすると、相手はユーザーにメッセージを送信したり、ユーザーの友達サークルを表示したり、ユーザーと通話したりすることができなくなります。 3. ブロックとは、ユーザーの WeChat 連絡先リストから相手を削除することを意味するものではありません。 4. ユーザーが相手をブロックした後、ユーザーの WeChat 連絡先リストから相手を削除した場合、削除後に回復する方法はありません。 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 – 「太字テキスト」が有効になっている場合

Xiaohonshuのリリースを削除するにはどうすればよいですか?削除後に復元するにはどうすればよいですか? Xiaohonshuのリリースを削除するにはどうすればよいですか?削除後に復元するにはどうすればよいですか? Mar 21, 2024 pm 05:10 PM

人気のソーシャル電子商取引プラットフォームとして、Xiaohongshu は日常生活やショッピング体験を共有するために多くのユーザーを魅了してきました。場合によっては、私たちが誤って不適切なコンテンツを公開してしまうことがありますが、個人的なイメージをより良く維持したり、プラットフォームの規制に準拠したりするために、適時に削除する必要があります。 1.Xiaohongshu リリースを削除するにはどうすればよいですか? 1. Xiaohonshu アカウントにログインし、個人のホームページに入ります。 2. 個人ホームページの下部で、「My Creations」オプションを見つけてクリックして入力します。 3. 「My Creations」ページでは、メモやビデオなどを含む、公開されているすべてのコンテンツを確認できます。 4. 削除する必要があるコンテンツを見つけて、右側の「...」ボタンをクリックします。 5. ポップアップ メニューで、[削除] オプションを選択します。 6. 削除を確認すると、個人ホームページおよび公開ページからコンテンツが削除されます。

小紅書に関する他の人の削除されたコメントを取得するにはどうすればよいですか?他の人のコメントを削除した場合も表示されますか? 小紅書に関する他の人の削除されたコメントを取得するにはどうすればよいですか?他の人のコメントを削除した場合も表示されますか? Mar 21, 2024 pm 10:46 PM

小紅書は人気のあるソーシャル電子商取引プラットフォームであり、ユーザー間のインタラクティブなコメントはプラットフォーム上でのコミュニケーション手段として不可欠です。場合によっては、自分のコメントが他の人によって削除されていることがわかり、混乱することがあります。 1. 小紅書で他の人が削除したコメントを取得するにはどうすればよいですか?コメントが削除されたことに気付いた場合は、まずプラットフォーム上で関連する投稿や製品を直接検索して、コメントがまだ見つかるかどうかを確認してください。コメントが削除された後も表示される場合は、元の投稿の所有者によって削除された可能性があります。この時点で、元の投稿の所有者に連絡して、コメントを削除した理由を尋ね、コメントの復元をリクエストしてみてください。コメントが完全に削除され、元の投稿で見つからない場合、プラットフォーム上でコメントが復元される可能性は比較的低いです。他の方法を試すこともできます

TikTokのチャット履歴を完全に削除する方法 TikTokのチャット履歴を完全に削除する方法 May 07, 2024 am 11:14 AM

1. Douyin アプリを開き、インターフェイスの下部にある [メッセージ] をクリックし、削除する必要があるチャット会話エントリをクリックします。 2. 任意のチャット記録を長押しし、[複数選択]をクリックし、削除したいチャット記録にチェックを入れます。 3. 右下隅の [削除] ボタンをクリックし、ポップアップ ウィンドウで [削除の確認] を選択して、これらのレコードを完全に削除します。

小紅書のコンテンツを公開するにはどうすればよいですか?小紅書に投稿されたコンテンツを削除するにはどうすればよいですか? 小紅書のコンテンツを公開するにはどうすればよいですか?小紅書に投稿されたコンテンツを削除するにはどうすればよいですか? Mar 21, 2024 pm 04:10 PM

ソーシャルメディアの継続的な発展に伴い、Xiaohongshuは若者が生活を共有し、トレンドを発見し、インスピレーションを得る重要なプラットフォームとなっています。この活気に満ちたコミュニティで、高品質のコンテンツを公開し、より多くの注目といいねを集めるにはどうすればよいかが、多くのユーザーの関心事となっています。 1. 小紅書のコンテンツを公開するにはどうすればよいですか?作成する前に、適切なトピックを選択することが重要です。自分の興味や専門知識に基づいて魅力的なトピックを選択できます。そうすることで、執筆プロセスに対する情熱を維持できるだけでなく、読者があなたの作品に共感しやすくなります。 2. タイトルを慎重に設計する: タイトルは、読者をクリックさせるための鍵であり、簡潔かつ明確であると同時に、魅力的で魅力的である必要があります。読者の反応を引き起こすような誇張した表現は避けてください

See all articles