Skip to content

class Athena::HTTP::Response
inherits Reference #

Represents an HTTP response that should be returned to the client.

Contains the content, status, and headers that should be applied to the actual HTTP::Server::Response.

The #content is written all at once to the server response's IO.

Direct known subclasses

Athena::HTTP::BinaryFileResponse Athena::HTTP::RedirectResponse Athena::HTTP::StreamedResponse

Constructors#

.new(content : String | Nil = nil, status : ::HTTP::Status | Int32 = ::HTTP::Status::OK, headers : ::HTTP::Headers | AHTTP::Response::Headers = AHTTP::Response::Headers.new)#

Creates a new response with optional content, status, and headers arguments.

View source

Methods#

#charset : String#

Returns the character set this response is encoded as.

View source

#charset=(charset : String)#

Returns the character set this response is encoded as.

View source

#content : String#

Returns the contents of this response.

View source

#content=(content : String | Nil) : self#

Sets the response content.

View source

#etag : String | ::Nil#

Returns the value of the etag header if set, otherwise nil.

View source

#headers : AHTTP::Response::Headers#

Returns the response headers of this response.

View source

#last_modified : Time | ::Nil#

Returns a Timerepresenting the last-modified header if set, otherwise nil.

View source

#last_modified=(time : Time | Nil = nil) : self#

Updates the last-modified header to the provided time. Removes the header if time is nil.

View source

#redirect?(location : String | Nil = nil) : Bool#

Returns true if this response is a redirect, optionally to the provided location. Otherwise, returns false.

View source

#send(request : AHTTP::Request, response : ::HTTP::Server::Response) : self#

Sends self to the client based on the provided context.

How the content gets written can be customized via an AHTTP::Response::Writer.

View source

#set_etag(etag : String | Nil = nil, weak : Bool = false) : self#

Updates the etag header to the provided, optionally weak, etag. Removes the header if etag is nil.

View source

#set_public : self#

Marks self as "public".

Adds the public cache-control directive and removes the private directive.

View source

#status : ::HTTP::Status#

Returns the ::HTTP::Status of this response.

View source

#status=(code : ::HTTP::Status | Int32) : self#

Sets the ::HTTP::Status of this response.

View source