# Change log All notable changes to this project will be documented in this file. This project follows the [Semantic Versioning standard](https://semver.org/). ## Unreleased (2024-xx-xx) ### Added ### Changed ### Deprecated ### Removed ### Fixed ### Security ## Version 0.9.0 (2024-11-12) ### Changed - Updated `rocket` to `v0.5.1` (#149, #148) - Updated `rocket_http` to `0.5.1` - Updated `rocket_db_pools` to `0.2.0` - Updated `rocket_dyn_templates` to `0.2.0` - Updated `rocket_ws` to `0.1.1` ### Removed - Removed `rocket_sync_db_pools::example::ExampleDb` implementation for `OpenApiFromRequest`. ## Version 0.8.0 (2024-01-14) ### Added - Added support for new [`Responder`](https://docs.rs/rocket/0.5.0/rocket/response/trait.Responder.html) types (implemented `OpenApiResponderInner`): - `Box` - Added support for new [`FromRequest`](https://docs.rs/rocket/0.5.0/rocket/request/trait.FromRequest.html) types (implemented `OpenApiFromRequest`): - `rocket::request::Outcome` - New feature flag `rocket_sync_db_pools` for compatibility with [`rocket_sync_db_pools`](https://crates.io/crates/rocket_sync_db_pools). - New feature flag `rocket_ws` for compatibility with [`rocket_ws`](https://crates.io/crates/rocket_ws). - Added new example for WebSockets. - Added support for new [`Responder`](https://docs.rs/rocket/0.5.0/rocket/response/trait.Responder.html) types (implemented `OpenApiResponderInner`): - `rocket_ws::Channel<'o>` (when `rocket_ws` feature is enabled) - `rocket_ws::stream::MessageStream<'o, S>` (when `rocket_ws` feature is enabled) - Added support for new [`FromRequest`](https://docs.rs/rocket/0.5.0/rocket/request/trait.FromRequest.html) types (implemented `OpenApiFromRequest`): - `rocket_dyn_templates::Metadata<'r>` (when `rocket_dyn_templates` feature is enabled) - `rocket_sync_db_pools::example::ExampleDb` (when `rocket_sync_db_pools` feature is enabled) - `rocket_ws::WebSocket` (when `rocket_ws` feature is enabled) - Added `get_nested_endpoints_and_docs` to support more module based APIs. (#137, #138) ### Changed - `rocket-okapi` and `rocket-okapi-codegen` require `rocket v0.5.0`. (#132) - Updated RapiDoc to `v9.3.4` and updated settings, including changed defaults in RapiDocs. - Schema settings moved to `SchemaConfig`. - `GeneralConfig` added: `update_route`, `route_prefix` and `persist_auth`. - `UiConfig` added: `css_file` and `css_classes`. - `NavConfig` added: `show_method_in_nav_bar`, `nav_accent_text_color`, `nav_active_item_marker` and `on_nav_tag_click`. - `NavConfig` removed: `nav_bg_image`, `nav_bg_image_size` and `nav_bg_image_repeat`. - `HideShowConfig` added: `allow_spec_file_download`, `allow_advanced_search` and `show_curl_before_try`. - `ApiConfig` changed: `api_key_name`, `api_key_location` and `fetch_credentials`. - `SlotsConfig` added: `operations_top`. - Note: The default `RenderStyle` changed from `View` to `Read`. - Note: `schema_hide_read_only` and `schema_hide_write_only` changed behavior. - Updated Swagger UI to `v5.11.0`. - Updated all crates to Rust 2021 edition. - Renamed `uuid` example to `uuid_usage`, so it does not collide with `uuid` crate. This version also includes all the changes from `0.8.0-rc.1`, `0.8.0-rc.2` and `0.8.0-rc.3`. See below for more info on the changes made in these versions. ## Version 0.8.0-rc.3 (2023-05-29) ### Added - Add `ignore` derive attribute to ignore function arguments from documentation. (#113) - `operation_id` can now be overwritten using `#[openapi(operation_id = "my_custom_id")]`, but it has to be unique in the API spec. (#63) - Added support for `#[openapi(deprecated)]` to mark endpoint as deprecated in spec. (#123) ### Changed - `rocket-okapi` and `rocket-okapi-codegen` require `rocket v0.5.0-rc.3`. (#122) ### Fixed - `mount_endpoints_and_merged_docs!` does avoid combined paths with double `/`. - Raw identifiers (`r#type`) can now be used in parameters. (#117) - `rocket::form::Form` now set requested data as "multipart/form-data". (#80) ## Version 0.8.0-rc.2 (2022-06-07) Note that this update is a minor version update, but still contains breaking changes because the Rocket version had a minor update with breaking changes too. This will thus fix previous error because of incompatibility. ### Added - Add support for `rocket::response::stream::EventStream` (#52) - Update Rocket from `0.5.0-rc.1` to `0.5.0-rc.2`. (#89) - Updated Swagger UI to `v4.12.0`. - Updated RapiDoc to `v9.3.2`. - New Rocket feature flags `mtls` re-exposed. - Added support for new [`Responder`](https://docs.rs/rocket/0.5.0-rc.2/rocket/response/trait.Responder.html) types (implemented `OpenApiResponderInner`): - `Arc` - `Arc<[u8]>` - `Box<[u8]>` - `Box` - `rocket::response::Redirect` adds `500 Internal Server Error` status code. - `rocket_dyn_templates::Template` (requires `rocket_dyn_templates` feature) ([See example](../examples/dyn_templates/src/main.rs)) - Some other changes because of renamed types in Rocket. - Added support for new [`FromRequest`](https://docs.rs/rocket/0.5.0-rc.2/rocket/request/trait.FromRequest.html) types (implemented `OpenApiFromRequest`): - `rocket::http::uri::Host` - `Certificate` (when `mtls` feature is enabled) - `FlashMessage` - `rocket_db_pools::Connection` (when `rocket_db_pools` feature is enabled) (#104) - New feature flag `rocket_dyn_templates` for enable compatibility with [`rocket_dyn_templates`](https://crates.io/crates/rocket_dyn_templates). - New feature flag `rocket_db_pools` for enable compatibility with [`rocket_db_pools`](https://crates.io/crates/rocket_db_pools). - New example for Rocket's Dynamic Templates. ### Changed - Changed `Data<'r>` from `String` type is binary data (`Vec`) in `FromData` implementation. (#65) - Fixed missing of schema for `EventStream` and `TextStream`. (#86) - Generated functions are no longer included in Rust Documentation. (#69) ### Fixed - Response schema added for `Vec`, `&[u8]`, `std::fs::File` and other octet-streams. (#72) - Fix support for Streams: (#68) - `rocket::response::stream::ByteStream` - `rocket::response::stream::ReaderStream` - `rocket::response::stream::TextStream` ## Version 0.8.0-rc.1 (2021-10-02) ### Added - Added feature flag `rapidoc` to enable [RapiDoc](https://mrin9.github.io/RapiDoc/) documentation viewer. (Based on #33) - Added RapiDoc v9.0.0 - Forbid unsafe code in this crate. (#36) - Retrieve OpenApi object after generating. (#28) - Create `mount_endpoints_and_merged_docs` marco in order to streamline code structure for bigger projects. (#30) - Added new example for structuring bigger projects. - Allowed changing path where OpenApi file is hosted. - Added `openapi_routes` and `openapi_spec` macros to allow lower level access to the generation of the routes and specification respectively. - Added `openapi_get_routes`, `openapi_get_routes_spec` and `openapi_get_spec` to get a combination of `Vec` and/or `okapi::openapi3::OpenApi`. - Optionally allows the setting of `OpenApiSettings` when generating the OpenApi objects and Routes. - Add support for UUIDs, and added example. (#38, #46, #54) - Added `log v0.4` as a dependency. - Added `either v1` as a dependency. (Rocket dependency) - Added feature flag for [`msgpack`](https://docs.rs/rocket/0.5.0-rc.1/rocket/serde/msgpack/struct.MsgPack.html) (Re-exposing Rocket feature flag) - Added support for new [`Responder`](https://docs.rs/rocket/0.5.0-rc.1/rocket/response/trait.Responder.html) types (implemented `OpenApiResponderInner`): - `std::fs::File` - `rocket::tokio::fs::File` - `std::borrow::Cow<'o, T>` - `either::Either` - `std::io::Error` - `(rocket::http::ContentType, R)` - `(rocket::http::Status, R)` - `rocket::http::Status` (#20) - `rocket::response::status::NoContent` - `rocket::response::Redirect` - `rocket::response::content::Custom` - `rocket::response::status::Conflict` - `rocket::response::status::Custom` - `rocket::response::Flash` - `rocket::data::Capped` - `rocket::response::Debug` - `rocket::response::stream::ByteStream` - `rocket::response::stream::ReaderStream` - `rocket::response::stream::TextStream` - `rocket::serde::msgpack::MsgPack` (only when feature `msgpack` is enabled) - Fully implement `FromSegments` for `` in path. (#41) - Implement `OpenApiFromSegments` for all that implement `FromSegments` and `JsonSchema`. (#41) - Implement `OpenApiFromParam` for all that implement `FromParam` and `JsonSchema`. - Implement `OpenApiFromFormField` for all that implement `FromFormField` and `JsonSchema`. - Added support for new [`FromData`](https://docs.rs/rocket/0.5.0-rc.1/rocket/data/trait.FromData.html) types (implemented `OpenApiFromData`): - `String` - `&'r str` - `Cow<'r, str>` - `Vec` - `&'r [u8]` - `rocket::fs::TempFile<'r>` - `rocket::data::Capped>` - `rocket::data::Capped>` - `rocket::data::Capped<&'r str>` - `rocket::data::Capped<&'r rocket::http::RawStr>` - `rocket::data::Capped<&'r [u8]>` - `rocket::data::Capped` - `rocket::data::Capped>` - `&'r rocket::http::RawStr` - `rocket::form::Form` - `rocket::serde::msgpack::MsgPack` (only when feature `msgpack` is enabled) - Added feature flag for [`secrets`](https://rocket.rs/v0.5-rc/guide/requests/#secret-key) (Re-exposing Rocket feature flag) - Added support for [Request Guards](https://rocket.rs/v0.4/guide/requests/#request-guards) and [Security Scheme](https://swagger.io/docs/specification/authentication/) (aka Authentication and Authorization) (#47, #9, #8, #56) - Added support for new [`FromRequest`](https://docs.rs/rocket/0.5.0-rc.1/rocket/request/trait.FromRequest.html) types (implemented `OpenApiFromRequest`): - `std::net::IpAddr` - `std::net::SocketAddr` - `Result` - `Option` - `&'r rocket::config::Config` - `&'r rocket::config::SecretKey`(only when feature `secrets` is enabled) - `&'r rocket::data::Limits` - `&'r rocket::http::Accept` - `&'r rocket::http::ContentType` - `&'r rocket::http::CookieJar<'r>` - `&'r rocket::http::uri::Origin<'r>` - `&'r rocket::route::Route` - `rocket::http::Method` - `rocket::Shutdown` - `&'r rocket::State` - Added `OpenApiFromRequest` derive macro. - Added feature flag for `preserve_order` to keep the order of struct fields in `Schema` all parts of the `OpenAPI` documentation. - `Okapi` create is now re-exported and can be found as `rocket_okapi::okapi`. ### Changed - Swagger UI is now only available under the feature `swagger`. - Updated Swagger UI to v3.52.0 - The `preserve_order` feature flag is now enabled by default. - `UrlObject` has been moved from `swagger_ui::UrlObject` to `settings::UrlObject`. - Replaced manual implementations of `OpenApiFromParam` with generic version. So `OpenApiFromParam` is implemented for more types. - Replaced manual implementations of `OpenApiFromFormField` with generic version. So `OpenApiFromFormField` is implemented for more types. - Fixed setting of parameter location from "form" to "query". ### Removed - Removed unused and unneeded files from Swagger UI to decrease file size. - `routes_with_openapi` has be removed and replaced with `openapi_routes`. ## Pre version 0.8.0-rc.1 (2021-06-12) All changes before 2021-06-12 where not documented. This is everything before and including: 4080d574bdd7d86d3061d19bf735a14efd7cd103