0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 12:20:24 +00:00

Update CHANGELOG

This commit is contained in:
Loïc Hoguin 2014-10-04 15:50:53 +03:00
parent 0b14dbeb43
commit 5be3c5064e

View file

@ -1,6 +1,90 @@
CHANGELOG CHANGELOG
========= =========
2.0.0-pre.1
-----------
* Drop R16 support
* Breaking update of the cowboy_req interface
Simplify the interface for most cowboy_req functions. They all return
a single value except the four body reading functions. The reply functions
now only return a Req value.
Access functions do not return a Req anymore.
Functions that used to cache results do not have a cache anymore.
The interface for accessing query string and cookies has therefore
been changed.
None of the functions return an error tuple anymore. It either works
or crashes. Cowboy will attempt to provide an appropriate status code
in the response of crashed handlers.
As a result, the content decode function has its return value changed
to a simple binary, and the body reading functions only return on success.
* Change interface for reading the query string and cookies
There are now three query string functions: qs/1 provides access
to the raw query string value; parse_qs/1 returns the query string
as a list of key/values; match_qs/2 returns a map containing the
values requested in the second argument, after applying constraints
and default value.
Similarly, there are two cookie functions: parse_cookies/1 and
match_cookies/2. More match functions will be added in future commits.
* Unify the init and terminate callbacks
`init/3` becomes `init/2`, its first argument was removed. Its return
value has changed, it now returns an `ok` tuple or a `Mod` tuple, the
latter allowing to switch to a different handler type and also able
to take timeout and hibernate options. The sub protocol interface has
been changed and receives these options now.
rest_init/2 and rest_terminate/2 have been removed.
websocket_init/3 and websocket_terminate/3 have been removed.
terminate/3 is now optional. It is called regardless of
the type of handler, including REST and Websocket.
Terminate reasons for all handler types have been documented.
The terminate callback is now appropriately called in all cases
(or should be).
* Plain HTTP handlers are virtually removed
You can use the `init/2` function to do the work of a plain HTTP
handler. The behavior is defined in `cowboy_handler`.
* Loop handlers are now the `cowboy_loop` sub protocol
* Loop handlers now use the same return values as Websocket
* Behaviors have been moved into the module implementing them
That means `cowboy_loop`, `cowboy_rest` and `cowboy_websocket`.
* Change the format for constraints used by the router
* Remove the onrequest hook
Use a middleware instead.
* Remove the `error` return value from middlewares
* Remove the REST `known_content_type` callback
* Improve absolute URI support
* Fix two edge cases when the request-line is invalid
* Guide reorganization and partial rewrite
1.0.0 1.0.0
----- -----