Package 'tower'

Title: Easy Middle Ware Library for 'shiny'
Description: The best way to implement middle ware for 'shiny' Applications. 'tower' is designed to make implementing behavior on top of 'shiny' easy with a layering model for incoming HTTP requests and server sessions. 'tower' is a very minimal package with little overhead, it is mainly meant for other package developers to implement new behavior.
Authors: ixpantia, SRL [cph], Andres Quintero [aut, cre]
Maintainer: Andres Quintero <[email protected]>
License: MIT + file LICENSE
Version: 0.2.0
Built: 2024-10-22 07:27:44 UTC
Source: CRAN

Help Index


Add a body to a response

Description

Adds a body to a response, if no content type is set, it will be detected

Usage

add_body(res, body)

Arguments

res

A response builder object

body

The body to add

Value

The response builder object


Add a body to a response as JSON

Description

Adds a body to a response as JSON

Usage

add_body_json(res, body)

Arguments

res

A response builder object

body

The body to add

Value

The response builder object


Add a DELETE route

Description

Adds a DELETE route to a tower

Usage

add_delete_route(tower, path, handler)

Arguments

tower

A tower object

path

A string containing the path to match

handler

A function to call when the route is matched

Value

The tower with the added DELETE route


Add a GET route

Description

Adds a GET route to a tower

Usage

add_get_route(tower, path, handler)

Arguments

tower

A tower object

path

A string containing the path to match

handler

A function to call when the route is matched

Value

The tower with the added GET route


Add an HTTP layer to a tower

Description

Add an HTTP layer to a tower. This layer will be called before the 'shiny' app's httpHandler.

Usage

add_http_layer(tower, layer)

Arguments

tower

A tower

layer

A function that takes a request and returns either a response. A layer can short circuit by returning a response directly or call the next layer will req$NEXT(req) which will call the next layer in the middleware.

Value

The tower with the added layer


Add a PATCH route

Description

Adds a PATCH route to a tower

Usage

add_patch_route(tower, path, handler)

Arguments

tower

A tower object

path

A string containing the path to match

handler

A function to call when the route is matched

Value

The tower with the added PATCH route


Add a POST route

Description

Adds a POST route to a tower

Usage

add_post_route(tower, path, handler)

Arguments

tower

A tower object

path

A string containing the path to match

handler

A function to call when the route is matched

Value

The tower with the added POST route


Add a PUT route

Description

Adds a PUT route to a tower

Usage

add_put_route(tower, path, handler)

Arguments

tower

A tower object

path

A string containing the path to match

handler

A function to call when the route is matched

Value

The tower with the added PUT route


Add an HTTP layer to a tower

Description

Adds an HTTP layer to a tower

Usage

add_route(tower, method = "GET", path, handler)

Arguments

tower

A tower object

method

A string containing the HTTP method to match

path

A string containing the path to match

handler

A function to call when the layer is matched

Value

The tower with the added route


Add a server layer to a tower

Description

Add a server layer to a tower. This layer will run before the 'shiny' app's server function. This is useful for adding custom logic to the server function without modifying the original server function.

Usage

add_server_layer(tower, layer)

Arguments

tower

A tower

layer

A function that takes input, output, and session and has no return value. This function will be called before the original server function. If you want to short-circuit the server use an exception.

Value

The tower with the added layer


Into parts

Description

Splits a shiny.appobj into its parts, the ui and server

Usage

app_into_parts(app)

Arguments

app

A shiny.appobj

Value

A list with the ui and server handlers


Build a response

Description

Builds a response

Usage

build_response(res)

Arguments

res

A response builder object

Value

A 'shiny' response object


Build a 'shiny' app from a tower

Description

Build a 'shiny' app from a tower. This will create a new 'shiny' app with the specified layers added.

Usage

build_tower(tower)

Arguments

tower

A tower

Value

A 'shiny' app object that can be started


Create a new tower

Description

Create a new tower to build upon.

Usage

create_tower(app)

Arguments

app

A 'shiny' app object

Value

A new tower object to add more layers to


Print a tower

Description

Print a tower

Usage

## S3 method for class 'tower'
print(x, ...)

Arguments

x

A tower

...

Ignored arguments (for compatibility with print)

Value

No return value, called for side effects


Extract form data from a request

Description

Extracts form data from a request

Usage

req_body_form(req)

Arguments

req

A request object

Value

A list containing the form data in the body


Extract the request body from a JSON request

Description

Extracts the request body from a JSON request

Usage

req_body_json(req, ...)

Arguments

req

A request object

...

Additional arguments to pass to fromJSON when parsing the request body. This will only be used the first time the request body is parsed. Subsequent calls will return the cached result.

Value

The R object representation of the body's JSON content


Extract cookies from a request

Description

Extracts cookies from a request

Usage

req_cookies(req)

Arguments

req

A request object

Value

A list containing the cookies


Extract query parameters from a request

Description

Extracts query parameters from a request

Usage

req_query(req)

Arguments

req

A request object

Value

A list containing the query parameters


Create a response builder

Description

Creates a response builder

Usage

response_builder()

Value

A response builder object


Set the content type of a response

Description

Sets the content type of a response

Usage

set_content_type(res, content_type)

Arguments

res

A response builder object

content_type

The content type to set

Value

The response builder object


Set a header on a response

Description

Sets or adds a header to a response

Usage

set_header(res, name, value)

Arguments

res

A response builder object

name

The name of the header

value

The value of the header

Value

The response builder object


Set the status of a response

Description

Sets the status of a response

Usage

set_status(res, status)

Arguments

res

A response builder object

status

The status to set

Value

The response builder object