Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MiddlewarePattern.pdf

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for ayato ayato
September 11, 2015

 MiddlewarePattern.pdf

Avatar for ayato

ayato

September 11, 2015
Tweet

More Decks by ayato

Other Decks in Programming

Transcript

  1. (def  _ayato_p      {:name  "あやぴー"        :lang

     [:clojure  :ruby  :javascript]        :company  "Cybozu  Startups,  Inc."})
  2. (def  _ayato_p      {:name  "あやぴー"        :lang

     [:clojure  :ruby  :javascript]        :company  "Cybozu  Startups,  Inc."}) Clojure  歴、半年
  3. Ring サーバーを抽象化する仕様/デファクトスタンダード   Ring  Handler,  Requests,  Responses,  Middleware   公式には

     jetty  のアダプタがある   最近で  Ring  インターフェイスを実装したものだと   Immutant  などがある
  4. Ring  Middleware ただの高階関数   Ring  Middleware  の場合、  Handler  を受け取って  

    Request  を受け取る関数を返すような書き方されてる
  5. Ring  Middleware (defn  wrap-­secret-­key[handler  secret-­key]      (fn  [req]  

           (handler  (assoc-­in  req  [:params  :secret-­key]  secret-­key))))   (defn  make-­handler  [handler]      (-­>  handler                  (wrap-­secret-­key  "This  is  secret!!")                  wrap-­something                  wrap-­anything                  wrap-­defaults))   (app  (make-­handler  (get-­ring-­handler)))