Ruby の Rack ミドルウェアとは何ですか? 「ミドルウェア」の意味について適切な説明を見つけることができませんでした。
ベストアンサー1
ラックのデザイン
Rack ミドルウェアは、「リクエストとレスポンスをフィルタリングする方法」以上のもので、Rackを使用した Web サーバーのパイプライン設計パターンの実装です。
リクエストを処理するさまざまな段階を非常に明確に分離します。関心の分離は、適切に設計されたすべてのソフトウェア製品の重要な目標です。
たとえば、Rack を使用すると、パイプラインの個別のステージで次の操作を実行できます。
認証: リクエストが到着したとき、ユーザーのログオン詳細は正しいですか? この OAuth、HTTP 基本認証、名前/パスワードを検証するにはどうすればよいですか?
承認: 「ユーザーはこの特定のタスクを実行する権限を持っているか?」、つまりロールベースのセキュリティ。
キャッシュ: このリクエストをすでに処理した場合、キャッシュされた結果を返すことはできますか?
デコレーション: 下流の処理を改善するためにリクエストを強化するにはどうすればよいでしょうか?
パフォーマンスと使用状況の監視: リクエストと応答からどのような統計情報を取得できますか?
実行: 実際にリクエストを処理し、応答を提供します。
さまざまなステージを分離できる(オプションでステージを含めることもできる)ことは、適切に構造化されたアプリケーションを開発する上で非常に役立ちます。
コミュニティ
Rack ミドルウェアを中心に素晴らしいエコシステムが開発されており、上記のすべての手順とそれ以上を実行するための構築済みのラック コンポーネントが見つかるはずです。ミドルウェアのリストについては、Rack GitHub wiki を参照してください。
ミドルウェアとは何ですか?
ミドルウェアは、何らかのタスクの実行を支援するが、直接関与しないソフトウェア コンポーネント/ライブラリを指す、恐ろしい用語です。非常に一般的な例としては、ログ記録、認証、およびその他の一般的な水平処理コンポーネントがあります。これらは、複数のアプリケーションにわたって誰もが必要とするものですが、自分で構築することに興味がある (または興味を持つべき) 人はそれほど多くありません。
詳しくは
リクエストをフィルタリングする方法であるというコメントは、おそらくRailsCast エピソード 151: Rack Middlewareスクリーンキャストから来ています。
Rack ミドルウェアは Rack から進化したもので、Introduction to Rack middlewareに素晴らしい入門書があります。
Wikipediaにミドルウェアの紹介があります。