aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/guide/rest_handlers.ezdoc
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2016-01-14 13:35:25 +0100
committerLoïc Hoguin <[email protected]>2016-01-14 13:37:20 +0100
commit4023e7f4e429179fd9c2cce4487c33646c6bd327 (patch)
tree3c4e26d1b5592958e35297c82ad3069bdb642594 /doc/src/guide/rest_handlers.ezdoc
parentb7d666cfc746f55b0a72ef8d37f703885099daf7 (diff)
downloadcowboy-4023e7f4e429179fd9c2cce4487c33646c6bd327.tar.gz
cowboy-4023e7f4e429179fd9c2cce4487c33646c6bd327.tar.bz2
cowboy-4023e7f4e429179fd9c2cce4487c33646c6bd327.zip
Convert the documentation to Asciidoc
A few small revisions were made, and Erlang.mk has been updated.
Diffstat (limited to 'doc/src/guide/rest_handlers.ezdoc')
-rw-r--r--doc/src/guide/rest_handlers.ezdoc125
1 files changed, 0 insertions, 125 deletions
diff --git a/doc/src/guide/rest_handlers.ezdoc b/doc/src/guide/rest_handlers.ezdoc
deleted file mode 100644
index e6bb092..0000000
--- a/doc/src/guide/rest_handlers.ezdoc
+++ /dev/null
@@ -1,125 +0,0 @@
-::: REST handlers
-
-REST is implemented in Cowboy as a sub protocol. The request
-is handled as a state machine with many optional callbacks
-describing the resource and modifying the machine's behavior.
-
-The REST handler is the recommended way to handle HTTP requests.
-
-:: Initialization
-
-First, the `init/2` callback is called. This callback is common
-to all handlers. To use REST for the current request, this function
-must return a `cowboy_rest` tuple.
-
-``` erlang
-init(Req, _Opts) ->
- {cowboy_rest, Req, #state{}}.
-```
-
-Cowboy will then switch to the REST protocol and start executing
-the state machine.
-
-After reaching the end of the flowchart, the `terminate/3` callback
-will be called if it is defined.
-
-:: Methods
-
-The REST component has code for handling the following HTTP methods:
-HEAD, GET, POST, PATCH, PUT, DELETE and OPTIONS.
-
-Other methods can be accepted, however they have no specific callback
-defined for them at this time.
-
-:: Callbacks
-
-All callbacks are optional. Some may become mandatory depending
-on what other defined callbacks return. The various flowcharts
-in the next chapter should be a useful to determine which callbacks
-you need.
-
-All callbacks take two arguments, the Req object and the State,
-and return a three-element tuple of the form `{Value, Req, State}`.
-
-All callbacks can also return `{stop, Req, State}` to stop execution
-of the request.
-
-The following table summarizes the callbacks and their default values.
-If the callback isn't defined, then the default value will be used.
-Please look at the flowcharts to find out the result of each return
-value.
-
-In the following table, "skip" means the callback is entirely skipped
-if it is undefined, moving directly to the next step. Similarly,
-"none" means there is no default value for this callback.
-
-|| Callback name Default value
-|
-| allowed_methods `[<<"GET">>, <<"HEAD">>, <<"OPTIONS">>]`
-| allow_missing_post `true`
-| charsets_provided skip
-| content_types_accepted none
-| content_types_provided `[{{<<"text">>, <<"html">>, '*'}, to_html}] `
-| delete_completed `true`
-| delete_resource `false`
-| expires `undefined`
-| forbidden `false`
-| generate_etag `undefined`
-| is_authorized `true`
-| is_conflict `false`
-| known_methods `[<<"GET">>, <<"HEAD">>, <<"POST">>, <<"PUT">>, <<"PATCH">>, <<"DELETE">>, <<"OPTIONS">>]`
-| languages_provided skip
-| last_modified `undefined`
-| malformed_request `false`
-| moved_permanently `false`
-| moved_temporarily `false`
-| multiple_choices `false`
-| options `ok`
-| previously_existed `false`
-| resource_exists `true`
-| service_available `true`
-| uri_too_long `false`
-| valid_content_headers `true`
-| valid_entity_length `true`
-| variances `[]`
-
-As you can see, Cowboy tries to move on with the request whenever
-possible by using well thought out default values.
-
-In addition to these, there can be any number of user-defined
-callbacks that are specified through `content_types_accepted/2`
-and `content_types_provided/2`. They can take any name, however
-it is recommended to use a separate prefix for the callbacks of
-each function. For example, `from_html` and `to_html` indicate
-in the first case that we're accepting a resource given as HTML,
-and in the second case that we send one as HTML.
-
-:: Meta data
-
-Cowboy will set informative meta values at various points of the
-execution. You can retrieve them using `cowboy_req:meta/{2,3}`.
-The values are defined in the following table.
-
-|| Meta key Details
-|
-| media_type The content-type negotiated for the response entity.
-| language The language negotiated for the response entity.
-| charset The charset negotiated for the response entity.
-
-They can be used to send a proper body with the response to a
-request that used a method other than HEAD or GET.
-
-:: Response headers
-
-Cowboy will set response headers automatically over the execution
-of the REST code. They are listed in the following table.
-
-|| Header name Details
-|
-| content-language Language used in the response body
-| content-type Media type and charset of the response body
-| etag Etag of the resource
-| expires Expiration date of the resource
-| last-modified Last modification date for the resource
-| location Relative or absolute URI to the requested resource
-| vary List of headers that may change the representation of the resource