Rackミドルウェアとは何ですか?質問する

Rackミドルウェアとは何ですか?質問する

Ruby の Rack ミドルウェアとは何ですか? 「ミドルウェア」の意味について適切な説明を見つけることができませんでした。

ベストアンサー1

ラックのデザイン

Rack ミドルウェアは、「リクエストとレスポンスをフィルタリングする方法」以上のもので、Rackを使用した Web サーバーのパイプライン設計パターンの実装です。

リクエストを処理するさまざまな段階を非常に明確に分離します。関心の分離は、適切に設計されたすべてのソフトウェア製品の重要な目標です。

たとえば、Rack を使用すると、パイプラインの個別のステージで次の操作を実行できます。

  • 認証: リクエストが到着したとき、ユーザーのログオン詳細は正しいですか? この OAuth、HTTP 基本認証、名前/パスワードを検証するにはどうすればよいですか?

  • 承認: 「ユーザーはこの特定のタスクを実行する権限を持っているか?」、つまりロールベースのセキュリティ。

  • キャッシュ: このリクエストをすでに処理した場合、キャッシュされた結果を返すことはできますか?

  • デコレーション: 下流の処理を改善するためにリクエストを強化するにはどうすればよいでしょうか?

  • パフォーマンスと使用状況の監視: リクエストと応答からどのような統計情報を取得できますか?

  • 実行: 実際にリクエストを処理し、応答を提供します。

さまざまなステージを分離できる(オプションでステージを含めることもできる)ことは、適切に構造化されたアプリケーションを開発する上で非常に役立ちます。

コミュニティ

Rack ミドルウェアを中心に素晴らしいエコシステムが開発されており、上記のすべての手順とそれ以上を実行するための構築済みのラック コンポーネントが見つかるはずです。ミドルウェアのリストについては、Rack GitHub wiki を参照してください。

ミドルウェアとは何ですか?

Middleware is a dreadful term which refers to any software component/library which assists with but is not directly involved in the execution of some task. Very common examples are logging, authentication and the other common, horizontal processing components. These tend to be the things that everyone needs across multiple applications but not too many people are interested (or should be) in building themselves.

More Information

おすすめ記事