#[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 config = Config::from("/api-doc.json");

If there is multiple api docs to serve config can be also directly created with Config::new

let config = Config::new(["/api-doc/openapi1.json", "/api-doc/openapi2.json"]);

Or same as above but more verbose syntax.

let config = Config::new([
    Url::new("api1", "/api-doc/openapi1.json"),
    Url::new("api2", "/api-doc/openapi2.json")
]);

With oauth config.

let config = Config::with_oauth_config(
    ["/api-doc/openapi1.json", "/api-doc/openapi2.json"],
    oauth::Config::new(),
);

Implementations§

Constructs a new Config from Iterator of Urls.

Examples

Create new config with 2 api doc urls.

let config = Config::new(["/api-doc/openapi1.json", "/api-doc/openapi2.json"]);

Constructs a new Config from Iterator of Urls.

Examples

Create new config with oauth config.

let config = Config::with_oauth_config(
    ["/api-doc/openapi1.json", "/api-doc/openapi2.json"],
    oauth::Config::new(),
);

Add url to fetch external configuration from.

Examples

Set extneral config url.

let config = Config::new(["/api-doc/openapi.json"])
    .config_url("http://url.to.external.config");

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 config = Config::new(["/api-doc/openapi.json"]).dom_id("#my-id");

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

Default value is false.

Examples

Enable query config.

let config = Config::new(["/api-doc/openapi.json"])
    .query_config_enabled(true);

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 config = Config::new(["/api-doc/openapi.json"])
    .deep_linking(false);

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 config = Config::new(["/api-doc/openapi.json"])
    .display_operation_id(true);

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 config = Config::new(["/api-doc/openapi.json"])
    .use_base_layout();

Add default models expansion depth.

Setting this to -1 will completely hide the models.

Examples

Hide all the models.

let config = Config::new(["/api-doc/openapi.json"])
    .default_models_expand_depth(-1);

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

Examples
let config = Config::new(["/api-doc/openapi.json"])
    .default_model_expand_depth(1);

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 cliking the Model and Example Value links.

  • example Makes example rendered first by default.
  • model Makes model rendered first by default.
Examples
let config = Config::new(["/api-doc/openapi.json"])
    .default_model_rendering(r#"["example"*, "model"]"#);

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 config = Config::new(["/api-doc/openapi.json"])
    .display_request_duration(true);

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 config = Config::new(["/api-doc/openapi.json"])
    .doc_expansion(r#"["list"*, "full", "none"]"#);

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 config = Config::new(["/api-doc/openapi.json"])
    .filter(true);

Add max_displayed_tags to restrict shown tagged operations.

By default all operations are shown.

Examples

Display only 4 operations.

let config = Config::new(["/api-doc/openapi.json"])
    .max_displayed_tags(4);

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 config = Config::new(["/api-doc/openapi.json"])
    .show_extensions(true);

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 config = Config::new(["/api-doc/openapi.json"])
    .show_common_extensions(true);

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 config = Config::new(["/api-doc/openapi.json"])
    .try_it_out_enabled(true);

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 config = Config::new(["/api-doc/openapi.json"])
    .request_snippets_enabled(true);

Add oauth redirect url.

Examples

Add oauth redirect url.

let config = Config::new(["/api-doc/openapi.json"])
    .oauth2_redirect_url("http://my.oauth2.redirect.url");

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 config = Config::new(["/api-doc/openapi.json"])
    .show_mutated_request(true);

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 explisitly.

let config = Config::new(["/api-doc/openapi.json"])
    .supported_submit_methods(["get", "put", "post", "delete", "options", "head", "patch", "trace"]);

Allow ‘Try it out’ for only GET operations.

let config = Config::new(["/api-doc/openapi.json"])
    .supported_submit_methods(["get"]);

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 config = Config::new(["/api-doc/openapi.json"])
    .validator_url("none");

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 config = Config::new(["/api-doc/openapi.json"])
    .with_credentials(true);

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 config = Config::new(["/api-doc/openapi.json"])
    .persist_authorization(true);

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Returns the “default value” for a type. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

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

Converts self into a collection.
Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more