Struct Config

Source
#[non_exhaustive]
pub struct Config<'a> { /* private fields */ }
Expand description

Object used to alter Swagger UI settings.

Config struct provides Swagger UI configuration for settings which could be altered with docker variables.

§Examples

In simple case, create config directly from url that points to the api doc json.

let mut config = Config::new();
config.urls(["/api-docs/openapi.json"]);

Implementations§

Source§

impl<'a> Config<'a>

Source

pub fn new() -> Self

Constructs a new Config with default settings.

§Examples
let config = Config::new();
Source

pub fn urls<I: IntoIterator<Item = U>, U: Into<Url<'a>>>( &mut self, urls: I, ) -> &mut Self

Sets the URLs for the OpenAPI specifications to be displayed in Swagger UI.

This method accepts an iterator of items that can be converted into Url objects. It handles both single and multiple URL scenarios appropriately:

  • For a single URL, it will be set as the primary URL
  • For multiple URLs, they will be displayed in a dropdown selector
§Examples
let mut config = Config::new();

// Single URL
config.urls(["/api-docs/openapi.json"]);

// Multiple URLs
config.urls(["/api-docs/openapi.json", "/api-docs/openapi-v2.json"]);
Source

pub fn oauth_config(&mut self, oauth_config: Config) -> &mut Self

Constructs a new Config from Iterator of Urls.

§Examples

Create new config with oauth config.

let mut config = Config::new();
let config = config.oauth_config(oauth::Config::new());
Source

pub fn config_url<S: Into<String>>(&mut self, config_url: S) -> &mut Self

Add url to fetch external configuration from.

§Examples

Set external config url.

let mut config = Config::new();
config.config_url("http://url.to.external.config");
Source

pub fn dom_id<S: Into<String>>(&mut self, dom_id: S) -> &mut Self

Add id of the DOM element where Swagger UI will put it’s user interface.

The default value is #swagger-ui.

§Examples

Set custom dom id where the Swagger UI will place it’s content.

let mut config = Config::new();
config.dom_id("#my-id");
Source

pub fn query_config_enabled(&mut self, query_config_enabled: bool) -> &mut Self

Set query_config_enabled to allow overriding configuration parameters via url query parameters.

Default value is false.

§Examples

Enable query config.

let mut config = Config::new();
config.query_config_enabled(true);
Source

pub fn deep_linking(&mut self, deep_linking: bool) -> &mut Self

Set deep_linking to allow deep linking tags and operations.

Deep linking will automatically scroll to and expand operation when Swagger UI is given corresponding url fragment. See more at deep linking docs.

Deep linking is enabled by default.

§Examples

Disable the deep linking.

let mut config = Config::new();
config.deep_linking(false);
Source

pub fn display_operation_id(&mut self, display_operation_id: bool) -> &mut Self

Set display_operation_id to true to show operation id in the operations list.

Default value is false.

§Examples

Allow operation id to be shown.

let mut config = Config::new();
config.display_operation_id(true);
Source

pub fn use_base_layout(&mut self) -> &mut Self

Set ‘layout’ to ‘BaseLayout’ to only use the base swagger layout without a search header.

Default value is ‘StandaloneLayout’.

§Examples

Configure Swagger to use Base Layout instead of Standalone

let mut config = Config::new();
config.use_base_layout();
Source

pub fn default_models_expand_depth( &mut self, default_models_expand_depth: isize, ) -> &mut Self

Add default models expansion depth.

Setting this to -1 will completely hide the models.

§Examples

Hide all the models.

let mut config = Config::new();
config.default_models_expand_depth(-1);
Source

pub fn default_model_expand_depth( &mut self, default_model_expand_depth: isize, ) -> &mut Self

Add default model expansion depth for model on the example section.

§Examples
let mut config = Config::new();
config.default_model_expand_depth(1);
Source

pub fn default_model_rendering<S: Into<String>>( &mut self, default_model_rendering: S, ) -> &mut Self

Add default_model_rendering to set how models is show when API is first rendered.

The user can always switch the rendering for given model by clicking the Model and Example Value links.

  • example Makes example rendered first by default.
  • model Makes model rendered first by default.
§Examples
let mut config = Config::new();
config.default_model_rendering(r#"["example"*, "model"]"#);
Source

pub fn display_request_duration( &mut self, display_request_duration: bool, ) -> &mut Self

Set to true to show request duration of ‘Try it out’ requests (in milliseconds).

Default value is false.

§Examples

Enable request duration of the ‘Try it out’ requests.

let mut config = Config::new();
config.display_request_duration(true);
Source

pub fn doc_expansion<S: Into<String>>(&mut self, doc_expansion: S) -> &mut Self

Add doc_expansion to control default expansion for operations and tags.

  • list Will expand only tags.
  • full Will expand tags and operations.
  • none Will expand nothing.
§Examples
let mut config = Config::new();
config.doc_expansion(r#"["list"*, "full", "none"]"#);
Source

pub fn filter(&mut self, filter: bool) -> &mut Self

Add filter to allow filtering of tagged operations.

When enabled top bar will show and edit box that can be used to filter visible tagged operations. Filter behaves case sensitive manner and matches anywhere inside the tag.

Default value is false.

§Examples

Enable filtering.

let mut config = Config::new();
config.filter(true);
Source

pub fn max_displayed_tags(&mut self, max_displayed_tags: usize) -> &mut Self

Add max_displayed_tags to restrict shown tagged operations.

By default all operations are shown.

§Examples

Display only 4 operations.

let mut config = Config::new();
config.max_displayed_tags(4);
Source

pub fn show_extensions(&mut self, show_extensions: bool) -> &mut Self

Set show_extensions to adjust whether vendor extension (x-) fields and values are shown for operations, parameters, responses and schemas.

§Example

Show vendor extensions.

let mut config = Config::new();
config.show_extensions(true);
Source

pub fn show_common_extensions( &mut self, show_common_extensions: bool, ) -> &mut Self

Add show_common_extensions to define whether common extension (pattern, maxLength, minLength, maximum, minimum) fields and values are shown for parameters.

§Examples

Show common extensions.

let mut config = Config::new();
config.show_common_extensions(true);
Source

pub fn try_it_out_enabled(&mut self, try_it_out_enabled: bool) -> &mut Self

Add try_it_out_enabled to enable ‘Try it out’ section by default.

Default value is false.

§Examples

Enable ‘Try it out’ section by default.

let mut config = Config::new();
config.try_it_out_enabled(true);
Source

pub fn request_snippets_enabled( &mut self, request_snippets_enabled: bool, ) -> &mut Self

Set request_snippets_enabled to enable request snippets section.

If disabled legacy curl snipped will be used.

Default value is false.

§Examples

Enable request snippets section.

let mut config = Config::new();
config.request_snippets_enabled(true);
Source

pub fn oauth2_redirect_url<S: Into<String>>( &mut self, oauth2_redirect_url: S, ) -> &mut Self

Add oauth redirect url.

§Examples

Add oauth redirect url.

let mut config = Config::new();
config.oauth2_redirect_url("http://my.oauth2.redirect.url");
Source

pub fn show_mutated_request(&mut self, show_mutated_request: bool) -> &mut Self

Add show_mutated_request to use request returned from requestInterceptor to produce curl command in the UI. If set to false the request before requestInterceptor was applied will be used.

§Examples

Use request after requestInterceptor to produce the curl command.

let mut config = Config::new();
config.show_mutated_request(true);
Source

pub fn supported_submit_methods<I: IntoIterator<Item = S>, S: Into<String>>( &mut self, supported_submit_methods: I, ) -> &mut Self

Add supported http methods for ‘Try it out’ operation.

‘Try it out’ will be enabled based on the given list of http methods when the operation’s http method is included within the list. By giving an empty list will disable ‘Try it out’ from all operations but it will not filter operations from the UI.

By default all http operations are enabled.

§Examples

Set allowed http methods explicitly.

let mut config = Config::new();
config.supported_submit_methods([
    "get", "put", "post", "delete", "options", "head", "patch", "trace",
]);

Allow ‘Try it out’ for only GET operations.

let mut config = Config::new();
config.supported_submit_methods(["get"]);
Source

pub fn validator_url<S: Into<String>>(&mut self, validator_url: S) -> &mut Self

Add validator url which is used to validate the Swagger spec.

This can also be set to use locally deployed validator for example see Validator Badge for more details.

By default swagger.io’s online validator (https://validator.swagger.io/validator) will be used. Setting this to none will disable the validator.

§Examples

Disable the validator.

let mut config = Config::new();
config.validator_url("none");
Source

pub fn with_credentials(&mut self, with_credentials: bool) -> &mut Self

Set with_credentials to enable passing credentials to CORS requests send by browser as defined fetch standards.

Note! that Swagger UI cannot currently set cookies cross-domain (see swagger-js#1163) - as a result, you will have to rely on browser-supplied cookies (which this setting enables sending) that Swagger UI cannot control.

§Examples

Enable passing credentials to CORS requests.

let mut config = Config::new();
config.with_credentials(true);
Source

pub fn persist_authorization( &mut self, persist_authorization: bool, ) -> &mut Self

Set to true to enable authorizations to be persisted throughout browser refresh and close.

Default value is false.

§Examples

Persists authorization throughout browser close and refresh.

let mut config = Config::new();
config.persist_authorization(true);
Source

pub fn with_syntax_highlight<H: Into<SyntaxHighlight>>( &mut self, syntax_highlight: H, ) -> &mut Self

Set a specific configuration for syntax highlighting responses and curl commands.

By default, swagger-ui does syntax highlighting of responses and curl commands. This may consume considerable resources in the browser when executed on large responses.

§Example

Disable syntax highlighting.

let mut config = Config::new();
config.with_syntax_highlight(false);
Source

pub fn basic_auth(&mut self, basic_auth: BasicAuth) -> &mut Self

Set basic authentication configuration. If configured, the Swagger UI will prompt for basic auth credentials. username and password are required. “{username}:{password}” will be base64 encoded and added to the “Authorization” header. If not provided or wrong credentials are provided, the user will be prompted again. # Examples

Configure basic authentication.

let mut config = Config::new();
config.basic_auth(BasicAuth {
    username: "admin".to_string(),
    password: "password".to_string(),
});

Trait Implementations§

Source§

impl<'a> Clone for Config<'a>

Source§

fn clone(&self) -> Config<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for Config<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Config<'_>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'a> Serialize for Config<'a>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Config<'a>

§

impl<'a> RefUnwindSafe for Config<'a>

§

impl<'a> Send for Config<'a>

§

impl<'a> Sync for Config<'a>

§

impl<'a> Unpin for Config<'a>

§

impl<'a> UnwindSafe for Config<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.