このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
psr:psr15 [2020/07/28 11:38] tanaka [2.1 Psr\Http\Server\RequestHandlerInterface] |
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 リクエストハンドラー ==== |
| - | + | ||
| - | A request handler is an individual component that processes a request and produces a response, as defined by PSR-7. | + | |
| リクエストハンドラーは、PSR-7で定義されているように、リクエストを処理して応答を生成する個別のコンポーネントです。 | リクエストハンドラーは、PSR-7で定義されているように、リクエストを処理して応答を生成する個別のコンポーネントです。 | ||
| - | |||
| - | A request handler MAY throw an exception if request conditions prevent it from producing a response. The type of exception is not defined. | ||
| リクエスト条件によりリクエストハンドラーがレスポンスを生成できない場合、リクエストハンドラーは例外をスローする場合があります( '' | リクエスト条件によりリクエストハンドラーがレスポンスを生成できない場合、リクエストハンドラーは例外をスローする場合があります( '' | ||
| - | Request handlers using this standard MUST implement the following interface: | + | この規約を使用するリクエストハンドラーは、次のインターフェースを実装する必要があります( '' |
| - | + | ||
| - | この規約を使用するリクエストハンドラは、次のインターフェースを実装する必要があります( '' | + | |
| * '' | * '' | ||
| 行 84: | 行 70: | ||
| ==== 1.2 ミドルウェア ==== | ==== 1.2 ミドルウェア ==== | ||
| - | A middleware component is an individual component participating, | + | ミドルウェアコンポーネントは個別のコンポーネントですが、PSR-7で定義されているように、着信要求の処理と結果応答の作成に他のミドルウェアコンポーネントと一緒に参加することが多いです。 |
| - | + | ||
| - | ミドルウェアコンポーネントは、個別のコンポーネントですが、PSR-7で定義されているように、着信要求の処理と結果の応答の作成に他のミドルウェアコンポーネントと一緒に参加することが多いです。 | + | |
| - | + | ||
| - | A middleware component MAY create and return a response without delegating to a request handler, if sufficient conditions are met. | + | |
| ミドルウェアコンポーネントは、十分な条件が満たされている場合、リクエストハンドラーに委任することなく応答を作成して返すことができます( '' | ミドルウェアコンポーネントは、十分な条件が満たされている場合、リクエストハンドラーに委任することなく応答を作成して返すことができます( '' | ||
| - | |||
| - | Middleware using this standard MUST implement the following interface: | ||
| この規約を使用するミドルウェアは、次のインターフェースを実装する必要があります( '' | この規約を使用するミドルウェアは、次のインターフェースを実装する必要があります( '' | ||
| 行 102: | 行 82: | ||
| ==== 1.3 レスポンスの生成 ==== | ==== 1.3 レスポンスの生成 ==== | ||
| - | It is RECOMMENDED that any middleware or request handler that generates a response will either compose a prototype of a PSR-7 ResponseInterface or a factory capable of generating a ResponseInterface instance in order to prevent dependence on a specific HTTP message implementation. | + | 応答を生成するミドルウェアまたはリクエストハンドラーは、PSR-7の '' |
| - | + | ||
| - | 応答を生成するミドルウェアまたはリクエストハンドラーは、PSR-7の '' | + | |
| \\ | \\ | ||
| 行 110: | 行 88: | ||
| ==== 1.4 例外のハンドリング ==== | ==== 1.4 例外のハンドリング ==== | ||
| - | It is RECOMMENDED that any application using middleware includes a component that catches exceptions and converts them into responses. This middleware SHOULD be the first component executed and wrap all further processing to ensure that a response is always generated. | + | ミドルウェアを使用するアプリケーションは、例外をキャッチしてそれらをレスポンスに変換するコンポーネントを含むことが推奨されます( '' |
| - | + | ||
| - | ミドルウェアを使用するアプリケーションは、例外をキャッチしてそれらをレスポンスに変換するコンポーネントを含むことが推奨されます( '' | + | |
| \\ | \\ | ||
| 行 120: | 行 96: | ||
| ==== 2.1 Psr\Http\Server\RequestHandlerInterface ==== | ==== 2.1 Psr\Http\Server\RequestHandlerInterface ==== | ||
| - | The following interface MUST be implemented by request handlers. | + | リクエストハンドラーは次のインターフェースを実装する必要があります( '' |
| - | + | ||
| - | リクエストハンドラは次のインターフェースを実装する必要があります( '' | + | |
| <code php RequestHandlerInterface.php> | <code php RequestHandlerInterface.php> | ||
| 行 131: | 行 105: | ||
| /** | /** | ||
| - | * Handles a server request and produces a response. | ||
| * サーバーリクエストを処理し、レスポンスを生成します。 | * サーバーリクエストを処理し、レスポンスを生成します。 | ||
| * | * | ||
| - | * An HTTP request handler process an HTTP request in order to produce an | ||
| - | * HTTP response. | ||
| * HTTPリクエストハンドラーは、HTTPレスポンスを生成するためにHTTPリクエストを処理します。 | * HTTPリクエストハンドラーは、HTTPレスポンスを生成するためにHTTPリクエストを処理します。 | ||
| */ | */ | ||
| 行 141: | 行 112: | ||
| { | { | ||
| /** | /** | ||
| - | * Handles a request and produces a response. | ||
| * リクエストを処理し、レスポンスを生成します。 | * リクエストを処理し、レスポンスを生成します。 | ||
| * | * | ||
| - | * May call other collaborating code to generate the response. | ||
| * レスポンスを生成するために、他の協調するコードを呼び出すことができます。 | * レスポンスを生成するために、他の協調するコードを呼び出すことができます。 | ||
| */ | */ | ||
| 行 154: | 行 123: | ||
| ==== 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> | ||
| \\ | \\ | ||