このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
psr:psr15 [2020/07/28 11:24] tanaka [PSR-15: HTTPサーバーリクエストハンドラー] |
psr:psr15 [2020/09/01 11:54] tanaka [PSR-15: HTTP Server Request Handlers] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | > 編集中 | ||
- | |||
====== PSR-15: HTTP Server Request Handlers ====== | ====== PSR-15: HTTP Server Request Handlers ====== | ||
--- // | --- // | ||
- | 本章は、若干の補足を加筆してはいるものの単に[[https:// | + | 本章は、若干の補足を加筆してはいるものの単に[[https:// |
関連記事 | 関連記事 | ||
行 21: | 行 19: | ||
* [[psr: | * [[psr: | ||
* PSR-15: HTTP Server Request Handlers - HTTPサーバーリクエストハンドラー | * PSR-15: HTTP Server Request Handlers - HTTPサーバーリクエストハンドラー | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
----- | ----- | ||
行 27: | 行 29: | ||
--- // 原文より翻訳 [[https:// | --- // 原文より翻訳 [[https:// | ||
- | |||
- | This document describes common interfaces for HTTP server request handlers (“request handlers”) and HTTP server middleware components (“middleware”) that use HTTP messages as described by PSR-7 or subsequent replacement PSRs. | ||
このドキュメントでは、[[https:// | このドキュメントでは、[[https:// | ||
- | HTTP request handlers are a fundamental part of any web application. Server-side code receives a request message, processes it, and produces a response message. HTTP middleware is a way to move common request and response processing away from the application layer. | + | HTTPリクエストハンドラーは、あらゆるWebアプリケーションの基本的な部分です。サーバー側コードは、リクエストメッセージを受信して処理し、応答メッセージを生成します。HTTPミドルウェアは、一般的なリクエストとレスポンスの処理をアプリケーション層から分離するための方法の1つです。 |
- | + | ||
- | HTTPリクエストハンドラは、あらゆるWebアプリケーションの基本的な部分です。サーバー側コードは、リクエストメッセージを受信して処理し、応答メッセージを生成します。HTTPミドルウェアは、一般的なリクエストとレスポンスの処理をアプリケーション層から分離する方法です。 | + | |
- | + | ||
- | The interfaces described in this document are abstractions for request handlers and middleware. | + | |
このドキュメントで説明するインターフェースは、リクエストハンドラーとミドルウェアを抽象化したものです。 | このドキュメントで説明するインターフェースは、リクエストハンドラーとミドルウェアを抽象化したものです。 | ||
- | Note: All references to “request handlers” and “middleware” are specific to server request processing. | + | 注:「リクエストハンドラー」および「ミドルウェア」へのすべての参照は、サーバーリクエスト処理に固有なものです。 |
- | + | ||
- | 注:「リクエストハンドラー」および「ミドルウェア」へのすべての参照は、サーバーリクエスト処理に固有です。 | + | |
- | + | ||
- | The key words “MUST”, “MUST NOT”, “REQUIRED”, | + | |
このドキュメントのキーワード '' | このドキュメントのキーワード '' | ||
行 64: | 行 56: | ||
===== 1. 仕様 ====== | ===== 1. 仕様 ====== | ||
- | ==== 1.1 リクエストハンドラ ==== | + | ==== 1.1 リクエストハンドラー ==== |
- | >TODO | + | |
+ | リクエストハンドラーは、PSR-7で定義されているように、リクエストを処理して応答を生成する個別のコンポーネントです。 | ||
+ | |||
+ | リクエスト条件によりリクエストハンドラーがレスポンスを生成できない場合、リクエストハンドラーは例外をスローする場合があります( '' | ||
+ | |||
+ | この規約を使用するリクエストハンドラーは、次のインターフェースを実装する必要があります( '' | ||
+ | |||
+ | * '' | ||
\\ | \\ | ||
==== 1.2 ミドルウェア ==== | ==== 1.2 ミドルウェア ==== | ||
- | >TODO | + | |
+ | ミドルウェアコンポーネントは個別のコンポーネントですが、PSR-7で定義されているように、着信要求の処理と結果応答の作成に他のミドルウェアコンポーネントと一緒に参加することが多いです。 | ||
+ | |||
+ | ミドルウェアコンポーネントは、十分な条件が満たされている場合、リクエストハンドラーに委任することなく応答を作成して返すことができます( '' | ||
+ | |||
+ | この規約を使用するミドルウェアは、次のインターフェースを実装する必要があります( '' | ||
+ | |||
+ | * '' | ||
\\ | \\ | ||
==== 1.3 レスポンスの生成 ==== | ==== 1.3 レスポンスの生成 ==== | ||
- | >TODO | + | |
+ | 応答を生成するミドルウェアまたはリクエストハンドラーは、PSR-7の '' | ||
\\ | \\ | ||
==== 1.4 例外のハンドリング ==== | ==== 1.4 例外のハンドリング ==== | ||
- | >TODO | + | |
+ | ミドルウェアを使用するアプリケーションは、例外をキャッチしてそれらをレスポンスに変換するコンポーネントを含むことが推奨されます( '' | ||
\\ | \\ | ||
行 87: | 行 95: | ||
==== 2.1 Psr\Http\Server\RequestHandlerInterface ==== | ==== 2.1 Psr\Http\Server\RequestHandlerInterface ==== | ||
- | >TODO | + | |
+ | リクエストハンドラーは次のインターフェースを実装する必要があります( '' | ||
+ | |||
+ | <code php RequestHandlerInterface.php> | ||
+ | namespace Psr\Http\Server; | ||
+ | |||
+ | use Psr\Http\Message\ResponseInterface; | ||
+ | use Psr\Http\Message\ServerRequestInterface; | ||
+ | |||
+ | /** | ||
+ | * サーバーリクエストを処理し、レスポンスを生成します。 | ||
+ | * | ||
+ | * HTTPリクエストハンドラーは、HTTPレスポンスを生成するためにHTTPリクエストを処理します。 | ||
+ | */ | ||
+ | interface RequestHandlerInterface | ||
+ | { | ||
+ | /** | ||
+ | * リクエストを処理し、レスポンスを生成します。 | ||
+ | * | ||
+ | * レスポンスを生成するために、他の協調するコードを呼び出すことができます。 | ||
+ | */ | ||
+ | public function handle(ServerRequestInterface $request): ResponseInterface; | ||
+ | } | ||
+ | </code> | ||
\\ | \\ | ||
==== 2.2 Psr\Http\Server\MiddlewareInterface ==== | ==== 2.2 Psr\Http\Server\MiddlewareInterface ==== | ||
- | >TODO | + | |
+ | 互換性のあるミドルウェアコンポーネントは次のインターフェースを実装する必要があります( '' | ||
+ | |||
+ | <code php MiddlewareInterface.php> | ||
+ | namespace Psr\Http\Server; | ||
+ | |||
+ | use Psr\Http\Message\ResponseInterface; | ||
+ | use Psr\Http\Message\ServerRequestInterface; | ||
+ | |||
+ | /** | ||
+ | * サーバーのリクエストとレスポンスを処理する参加者。 | ||
+ | * | ||
+ | * HTTPミドルウェアコンポーネントは、HTTPメッセージの処理に参加します: | ||
+ | * つまり、リクエストに基づいて動作するか、レスポンスを生成するか、 | ||
+ | * または リクエストを後続のミドルウェアに転送し場合によってはそのレスポンスに基づいて動作します。 | ||
+ | */ | ||
+ | interface MiddlewareInterface | ||
+ | { | ||
+ | /** | ||
+ | * 着信サーバー要求を処理します。 | ||
+ | * | ||
+ | * レスポンスを生成するために、着信サーバーリクエストを処理します。 | ||
+ | * レスポンス自体を生成できない場合は、それをするのに提供されたリクエストハンドラーに委任します。 | ||
+ | */ | ||
+ | public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface; | ||
+ | } | ||
+ | </code> | ||
\\ | \\ | ||