ring-http-response, 使用Clojure处理HTTP状态( 脚本)

分享于 

5分钟阅读

GitHub

  繁體 雙語
Real HTTP Statuses for Ring
  • 源代码名称:ring-http-response
  • 源代码网址:http://www.github.com/metosin/ring-http-response
  • ring-http-response源代码文档
  • ring-http-response源代码下载
  • Git URL:
    git://www.github.com/metosin/ring-http-response.git
    Git Clone代码到本地:
    git clone http://www.github.com/metosin/ring-http-response
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/metosin/ring-http-response
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    ring-http-response Build StatusDownloadsDependencies Status

    使用 Clojure(Script), 处理HTTP状态最初从 awesome Spray 移植。 主要用于 ring.util.response的drop-in-place替换。

    最新版本

    Clojars Project

    用法

    生成HTTP响应

    函数以 bodyurl。两个或者无参数作为参数,以与规范的参数匹配。

    (require '[ring.util.http-response :refer:all])
    (continue); {:status 100, :headers {}, :body""}(ok"body"); {:status 200, :headers {}, :body"body"}(created"url""body"); {:status 201, :headers {"Location""url"}, :body"body"}(found"url"); {:status 302, :headers {"Location""url"}, :body""}

    断言HTTP响应

    可以同时用于 Clojure & ClojureScript。

    (require '[ring.util.http-predicates :as predicates])
    (predicates/ok? {:status200}); true(predicates/not-found? {:status404}); true

    状态代码&文档

    例如通过名称&来引用HTTP代码,比如 Swagger

    (require '[ring.util.http-status :as status])
    status/ok; 200status/not-found; 404(status/get-name404);"Not Found"(status/get-description404);"The requested resource could not be found but may be available again in the future."(status/status404); {:name"Not Found"; :description"The requested resource could not be found but may be available again in the future."}

    抛出错误响应

    HTTP错误响应的所有响应函数都有一个异常,在名称( bad-request & bad-request ) 中抛出带有爆炸的兄弟。! 这些函数将响应封装在 ExceptionInfo 中。

    (bad-request"fail"); {:status 400, :headers {}, :body"fail"}(bad-request!"fail"); clojure.lang.ExceptionInfo: throw: {:type :ring.util.http-response/response, :response {:status 400, :headers {}, :body"fail"}}

    还有一个 throw 函数在异常中抛出任何类型的响应。!

    (throw! (header (bad-request"body") "header""value")); clojure.lang.ExceptionInfo: throw: {:type :ring.util.http-response/response, :response {:status 400, :headers {"header""value"}, :body"body"}}

    捕获已经抛出的HTTP响应

    中间件 ring.middleware.http-response/wrap-http-response 捕获引发的http响应并返回响应。 参见事实

    从 ring.util. 响应迁移

    • 添加依赖项
    • 将导入从 ring.util.response 更改为 ring.util.http-response
    • 转换你的响应以使用正确的http术语:
    • 200: response => ok
    • 302: redirect => found
    • 303: redirect-after-post => see-other
    • enjoy

    在两个软件包中 creatednot-found 都是相同的。 另外,ring.util.response 中的public var还可以通过 ring.util.http-response 获得。 这些包括:statusheaderfile-responsecontent-typefind-headerget-headerupdate-headercharsetset-cookie,和 blk。

    许可证

    原始代码: 版权所有 © 2011 -2013 Spray 项目 http://spray.io。

    版权所有 © 2014 -2017 Metosin Oy

    在 Eclipse public 许可证下分发,与Clojure相同。


    STA  HTTP  STAT  Clojure  状态  http-status  
    相关文章