mirror of
https://github.com/rwf2/Rocket.git
synced 2024-12-27 21:02:41 +00:00
9b955747e4
This commit includes two major changes to core: 1. Configuration state is no longer global. The `config::active()` function has been removed. The active configuration can be retrieved via the `config` method on a `Rocket` instance. 2. The `Responder` trait has changed. `Responder::respond(self)` has been removed in favor of `Responder::respond_to(self, &Request)`. This allows responders to dynamically adjust their response based on the incoming request. Additionally, it includes the following changes to core and codegen: * The `Request::guard` method was added to allow for simple retrivial of request guards. * The `Request::limits` method was added to retrieve configured limits. * The `File` `Responder` implementation now uses a fixed size body instead of a chunked body. * The `Outcome::of<R: Responder>(R)` method was removed while `Outcome::from<R: Responder(&Request, R)` was added. * The unmounted and unmanaged limits are more cautious: they will only emit warnings when the `Rocket` receiver is known. This commit includes one major change to contrib: 1. To use contrib's templating, the fairing returned by `Template::fairing()` must be attached to the running Rocket instance. Additionally, the `Display` implementation of `Template` was removed. To directly render a template to a `String`, the new `Template::show` method can be used. |
||
---|---|---|
.. | ||
db | ||
migrations | ||
src | ||
static | ||
bootstrap.sh | ||
Cargo.toml | ||
README.md | ||
Rocket.toml |
Rocket Todo Example
This example makes use of a SQLite database via diesel
to store todo tasks. As
a result, you'll need to have sqlite3
and its headers installed:
- OS X:
brew install sqlite
- Debian/Ubuntu:
apt-get install libsqlite3-dev
- Arch:
pacman -S sqlite
Running
Before running, building, or testing this example, you'll need to ensure the following:
- A SQLite database file with the proper schema is present.
On a Unix machine or with bash installed, you can simply run the
`boostrap.sh` script to create the database. The script installs the
`diesel_cli` tools if they're not already installed and runs the migrations.
The script will output a `DATABASE_URL` variable.
You can also run the migrations manually with the following commands:
```
cargo install diesel_cli # install diesel CLI tools
DATABASE_URL=db/db.sql diesel migration run # create db/db.sql
```
-
A
DATABASE_URL
environment variable is set that points to the SQLite database file.Use the
DATABASE_URL
variable emitted from thebootstrap.sh
script, or enter it manually, as follows:DATABASE_URL=db/db.sql cargo build
DATABASE_URL=db/db.sql cargo test
DATABASE_URL=db/db.sql cargo run