このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
psr:psr15 [2020/07/28 14:06] tanaka [PSR-15: HTTP Server Request Handlers] |
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:// |
関連記事 | 関連記事 | ||
行 24: | 行 22: | ||
* [[psr: | * [[psr: | ||
* [[psr: | * [[psr: | ||
- | * [[psr: | + | * [[psr: |
----- | ----- | ||
行 31: | 行 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”, | + | |
このドキュメントのキーワード '' | このドキュメントのキーワード '' | ||
行 69: | 行 57: | ||
==== 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: | ||
この規約を使用するリクエストハンドラーは、次のインターフェースを実装する必要があります( '' | この規約を使用するリクエストハンドラーは、次のインターフェースを実装する必要があります( '' | ||
行 88: | 行 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: | ||
この規約を使用するミドルウェアは、次のインターフェースを実装する必要があります( '' | この規約を使用するミドルウェアは、次のインターフェースを実装する必要があります( '' | ||
行 106: | 行 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の '' | + | |
\\ | \\ | ||
行 114: | 行 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. | + | ミドルウェアを使用するアプリケーションは、例外をキャッチしてそれらをレスポンスに変換するコンポーネントを含むことが推奨されます( '' |
- | + | ||
- | ミドルウェアを使用するアプリケーションは、例外をキャッチしてそれらをレスポンスに変換するコンポーネントを含むことが推奨されます( '' | + | |
\\ | \\ | ||
行 123: | 行 95: | ||
==== 2.1 Psr\Http\Server\RequestHandlerInterface ==== | ==== 2.1 Psr\Http\Server\RequestHandlerInterface ==== | ||
- | |||
- | The following interface MUST be implemented by request handlers. | ||
リクエストハンドラーは次のインターフェースを実装する必要があります( '' | リクエストハンドラーは次のインターフェースを実装する必要があります( '' | ||
行 135: | 行 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リクエストを処理します。 | ||
*/ | */ | ||
行 145: | 行 112: | ||
{ | { | ||
/** | /** | ||
- | * Handles a request and produces a response. | ||
* リクエストを処理し、レスポンスを生成します。 | * リクエストを処理し、レスポンスを生成します。 | ||
* | * | ||
- | * May call other collaborating code to generate the response. | ||
* レスポンスを生成するために、他の協調するコードを呼び出すことができます。 | * レスポンスを生成するために、他の協調するコードを呼び出すことができます。 | ||
*/ | */ | ||
行 158: | 行 123: | ||
==== 2.2 Psr\Http\Server\MiddlewareInterface ==== | ==== 2.2 Psr\Http\Server\MiddlewareInterface ==== | ||
- | |||
- | The following interface MUST be implemented by compatible middleware components. | ||
互換性のあるミドルウェアコンポーネントは次のインターフェースを実装する必要があります( '' | 互換性のあるミドルウェアコンポーネントは次のインターフェースを実装する必要があります( '' | ||
行 170: | 行 133: | ||
/** | /** | ||
- | * Participant in processing a server request and response. | ||
* サーバーのリクエストとレスポンスを処理する参加者。 | * サーバーのリクエストとレスポンスを処理する参加者。 | ||
* | * | ||
- | * An HTTP middleware component participates in processing an HTTP message: | ||
- | * by acting on the request, generating the response, or forwarding the | ||
- | * request to a subsequent middleware and possibly acting on its response. | ||
* HTTPミドルウェアコンポーネントは、HTTPメッセージの処理に参加します: | * HTTPミドルウェアコンポーネントは、HTTPメッセージの処理に参加します: | ||
* つまり、リクエストに基づいて動作するか、レスポンスを生成するか、 | * つまり、リクエストに基づいて動作するか、レスポンスを生成するか、 | ||
- | * またはリクエストを後続のミドルウェアに転送し、場合によってはそのレスポンスに基づいて動作します。 | + | * または リクエストを後続のミドルウェアに転送し場合によってはそのレスポンスに基づいて動作します。 |
*/ | */ | ||
interface MiddlewareInterface | interface MiddlewareInterface | ||
{ | { | ||
/** | /** | ||
- | * Process an incoming server request. | ||
* 着信サーバー要求を処理します。 | * 着信サーバー要求を処理します。 | ||
* | * | ||
- | * Processes an incoming server request in order to produce a response. | ||
- | * If unable to produce the response itself, it may delegate to the provided | ||
- | * request handler to do so. | ||
* レスポンスを生成するために、着信サーバーリクエストを処理します。 | * レスポンスを生成するために、着信サーバーリクエストを処理します。 | ||
* レスポンス自体を生成できない場合は、それをするのに提供されたリクエストハンドラーに委任します。 | * レスポンス自体を生成できない場合は、それをするのに提供されたリクエストハンドラーに委任します。 |