- Let the API backends start the bot up instead of vice versa. This allows for using your ASGI server of choice and also fixes event loop issues, allowing you to use asynchronous functions from the client.
- Make users have to make an API backend object before using the extension. This allows them greater control over it.
- Use Quart instead of Flask. It's properly asynchronous and is similar to Flask - you can even use some Flask extensions with it through a package.
- Add in unloading logic to remove endpoints from the backends.
Downsides:
- Flask is gone.
- You need to run a separate command/function to start up the bot - you can't just use the bot's start function.
- Using a custom router/blueprint per extension now requires some fiddling around in `__new__` or with a class variable, instead of being able to use `__init__`. This is because extension registration was moved to the extension add event - this is more reliable than the old method, but runs just before `__init__`.
New Contributors
* AstreaTSS made their first contribution in https://github.com/interactions-py/restful/pull/2
**Full Changelog**: https://github.com/interactions-py/restful/compare/1.0.2...2.0.0