fewd/include/http.hrl

33 lines
1.5 KiB
Erlang

-record(request,
{method = undefined :: undefined | method(),
path = undefined :: undefined | binary(),
qargs = undefined :: undefined | #{Key :: binary() := Value :: binary()},
fragment = undefined :: undefined | none | binary(),
version = undefined :: undefined | http10 | http11 | http20,
headers = undefined :: undefined | #{Key :: binary() := Value :: binary()},
cookies = undefined :: undefined | #{Key :: binary() := Value :: binary()},
enctype = undefined :: undefined | none | urlencoded | json | multipart(),
size = undefined :: undefined | none | non_neg_integer(),
body = undefined :: undefined | none | body()}).
-record(response,
{type = page :: page | {data, string()},
version = http11 :: http11,
code = 200 :: pos_integer(),
slogan = "" :: string(),
headers = [] :: [{Key :: string(), Value :: iolist()}],
body = "" :: iolist()}).
-type method() :: get | post | options.
-type multipart() :: {multipart, Boundary :: binary()}.
-type body() :: {partial, binary()} | {multipart, [body_part()]} | zj:value() | binary().
-type body_part() :: {Field :: binary(), Data :: binary()}
| {Field :: binary(), Name :: binary(), Data :: binary()}.
-type request() :: #request{}.
-type response() :: #response{}.
-type tcp_error() :: closed
| {timeout, RestData :: binary() | erlang:iovec()}
| inet:posix().