ホームページ >バックエンド開発 >PHPチュートリアル >PHPマスター| SlimでRestful Webサービスを書く
このSitePointシリーズは、REST原則を探りました。 この記事では、Sinatra(Ruby)に触発されたPHPマイクロフレームワークであるSlimを使用して、Restful Webサービスの構築を示しています。 ルーティング、リクエスト/応答処理、最小限のビューサポートなどのコアコンポーネントを備えたSlimの軽量性は、単純なREST APIに最適です。
重要な概念:
post()
put()
スリムの導入:delete()
:を作成します
ブラウザでにアクセスして、「Hello Slim World」を表示します。 SLIM Autoloads必要なファイル。 SLIMコンストラクターは、構成を受け入れます(例:index.php
、
<code class="language-php"><?php require "Slim/Slim.php"; $app = new Slim(); $app->get("/", function () { echo "<h1>Hello Slim World</h1>"; }); $app->run(); ?></code>)。
環境(開発/生産)を設定し、index.php
テンプレートディレクトリを指定します。 カスタムビューハンドラーは、デフォルトMODE
を置き換えることができます。例:TEMPLATES.PATH
VIEW
MODE
ルート作成が重要です。 ルートは、httpメソッドに基づいて機能をコールバックにマッピングします。 Slimは、最初のマッチングルートを優先します。比類のないリクエストにより、404エラーが発生します。 ルートを定義した後、TEMPLATES.PATH
に電話してアプリケーションを開始します。Slim_View
<code class="language-php"><?php $app = new Slim(array( "MODE" => "development", "TEMPLATES.PATH" => "./templates" )); ?></code>ライブラリサービスの構築:
run()
掲示書:
このエンドポイントには、すべての書籍がJSON形式でリストされています:
<code class="language-php"><?php require "NotORM.php"; $pdo = new PDO($dsn, $username, $password); // Replace with your database credentials $db = new NotORM($pdo); ?></code>
処理getリクエスト。
匿名関数内の外部変数にアクセスできます。応答ヘッダーはに設定されており、本のデータはJSONとしてエンコードされています。
<code class="language-php"><?php // ... (previous code) ... $app->get("/books", function () use ($app, $db) { $books = array(); foreach ($db->books() as $book) { $books[] = array( "id" => $book["id"], "title" => $book["title"], "author" => $book["author"], "summary" => $book["summary"] ); } $app->response()->header("Content-Type", "application/json"); echo json_encode($books); }); // ... (rest of the code) ...</code>本の詳細を取得:
get()
use
IDによる本を取得:application/json
ルートパラメーターは、コールバック関数に渡されます。 オプションのパラメーターはを使用します。 明示的なコールバック引数のないオプションのパラメーターの場合、
。を使用します
<code class="language-php"><?php // ... (previous code) ... $app->get("/book/:id", function ($id) use ($app, $db) { $app->response()->header("Content-Type", "application/json"); $book = $db->books()->where("id", $id); if ($data = $book->fetch()) { echo json_encode(array( "id" => $data["id"], "title" => $data["title"], "author" => $data["author"], "summary" => $data["summary"] )); } else { echo json_encode(array( "status" => false, "message" => "Book ID $id does not exist" )); } }); // ... (rest of the code) ...</code>ブックの追加と編集:
:id
post()
は追加し、put()
は書籍:
<code class="language-php"><?php require "Slim/Slim.php"; $app = new Slim(); $app->get("/", function () { echo "<h1>Hello Slim World</h1>"; }); $app->run(); ?></code>
$app->request()->post()
および$app->request()->put()
それぞれデータを取得してデータを配置します。 ブラウザベースのリクエストの場合は、フォームに「値「put」を持つ隠されたフィールド_METHOD
を使用してください。
本の削除:
IDによる本を削除:
<code class="language-php"><?php $app = new Slim(array( "MODE" => "development", "TEMPLATES.PATH" => "./templates" )); ?></code>
メソッドはデータベースレコードを削除します。 delete()
メソッドは、単一のルートで複数のhttpメソッドを処理します(ここには示されていません)。
map()
この記事では、Slimで基本的なRestful Webサービスを構築することを示しています。 さらなる開発には、堅牢なエラー処理と入力検証が含まれている必要があります。 ソースコード(ここには含まれていません)は、Github(元のテキストでは提供されていないリンク)にあります。 元のテキストのFAQセクションは、Slimのドキュメントを通じてすぐに利用できる基本情報を提供するため、省略されています。
以上がPHPマスター| SlimでRestful Webサービスを書くの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。