1. ホーム
  2. ruby-on-rails

[解決済み】Rackミドルウェアとは何ですか?

2022-04-02 13:43:27

質問

RubyのRackミドルウェアとは何ですか?ミドルウェアというのはどういう意味なのか、いい説明が見つかりません。

どのように解決するのですか?

デザインとしてのラック

Rackミドルウェアは、単にリクエストとレスポンスをフィルタリングするための手段ではありません。 パイプラインデザインパターン を使用しているウェブサーバーでは ラック .

これは、リクエストを処理するさまざまな段階を非常にきれいに分離するもので、関心事の分離は、よく設計されたソフトウェア製品の重要な目標です。

例えばRackでは、パイプラインの各ステージを別々に実行させることができます。

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

  • 認証 : "そのユーザーはこの特定のタスクを実行する権限がありますか?

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

  • デコレーション : 下流の処理をより良くするために、どのようにリクエストを拡張すればよいでしょうか?

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

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

異なるステージを分離できる(そしてオプションでそれらを含めることができる)ことは、うまく構造化されたアプリケーションを開発する上で大きな助けになります。

コミュニティ

また、ラックミドルウェアの周りには素晴らしいエコシステムが構築されており、上記のステップやそれ以上のことを行うための既製のラックコンポーネントを見つけることができるはずです。参照 Rack GitHub wikiにミドルウェアのリストがあります。 .

ミドルウェアとは?

ミドルウェアとは、あるタスクの実行を補助するが、直接的には関与しないソフトウェアコンポーネント/ライブラリのことを指す恐ろしい言葉である。非常に一般的な例としては、ロギング、認証、その他があります。 一般的な水平処理コンポーネント . これらは、複数のアプリケーションで誰もが必要とするものですが、自分で作ることに興味がある(あるいはあるべき)人はそれほど多くはないでしょう。

その他の情報