add response/output
This commit is contained in:
parent
ffc90239d0
commit
944602440c
|
@ -1,5 +1,5 @@
|
|||
#lang racket/base
|
||||
(require racket/contract
|
||||
(require racket/contract
|
||||
web-server/http/request-structs)
|
||||
|
||||
(define TEXT/HTML-MIME-TYPE #"text/html; charset=utf-8")
|
||||
|
@ -19,6 +19,16 @@
|
|||
(for ([b (in-list body)])
|
||||
(write-bytes b op)))))
|
||||
|
||||
(define (response/output output
|
||||
#:code [code 200]
|
||||
#:message [message #"Okay"]
|
||||
#:seconds [seconds (current-seconds)]
|
||||
#:mime-type [mime-type TEXT/HTML-MIME-TYPE]
|
||||
#:headers [headers '()])
|
||||
(response code message seconds mime-type headers
|
||||
output))
|
||||
|
||||
|
||||
(provide/contract
|
||||
[struct response
|
||||
([code number?]
|
||||
|
@ -28,4 +38,11 @@
|
|||
[headers (listof header?)]
|
||||
[output (output-port? . -> . void)])]
|
||||
[response/full (-> number? bytes? number? (or/c false/c bytes?) (listof header?) (listof bytes?) response?)]
|
||||
[response/output (->* ((-> output-port? void?))
|
||||
(#:code number?
|
||||
#:message bytes?
|
||||
#:seconds number?
|
||||
#:mime-type (or/c bytes? #f)
|
||||
#:headers (listof header?))
|
||||
response?)]
|
||||
[TEXT/HTML-MIME-TYPE bytes?])
|
||||
|
|
|
@ -235,6 +235,18 @@ Examples:
|
|||
#"</p></body></html>"))
|
||||
]
|
||||
}
|
||||
|
||||
@defproc[(response/output [output (-> output-port? void?)]
|
||||
[#:code code number? 200]
|
||||
[#:message message bytes? #"Okay"]
|
||||
[#:seconds seconds number? (current-seconds)]
|
||||
[#:mime-type mime-type (or/c bytes? #f) TEXT/HTML-MIME-TYPE]
|
||||
[#:headers headers (listof header?) '()]
|
||||
[#:cookies cookies (listof cookie?) '()])
|
||||
response?]{
|
||||
Equivalent to
|
||||
@racketblock[(response code message seconds mime-type headers output)]
|
||||
}
|
||||
|
||||
@defthing[TEXT/HTML-MIME-TYPE bytes?]{Equivalent to @racket[#"text/html; charset=utf-8"].}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user