* Use `parameterWithMeta` to get parameter data in <ParameterRow>
* Prefer specPath when fetching resolved subtrees in OperationContainer
* Add test for OAS3 callback rendering
* Remove debugger statement
* Pass base resolution URL directly to Swagger-Client subtree resolver
* Remove accidental comment
* Migrate additional options
* Don't default to empty Map when getting subtree
* fix(validateParam): check for ImList type before using count method
* Use `replaceState` to update `urls.primaryName`
This gives us the stateful URL we want, without:
(a) refreshing the page on update
(b) creating a long, useless history for the user
(c) implying that browser history is two-way bound
to Swagger-UI (it isn't, we don't have a router)
* Add `fn.opsFilter` docs and internal API versioning note
* restrict `x-example` functionality to Swagger 2.0
* polish Authorize + Close buttons
* add tachyons; use it for padding the new Reset button
* v3.12.0
* rebuild dist
44 lines
1.3 KiB
Markdown
44 lines
1.3 KiB
Markdown
# Plug points
|
|
|
|
Swagger-UI exposes most of its internal logic through the plugin system.
|
|
|
|
Often, it is beneficial to override the core internals to achieve custom behavior.
|
|
|
|
### Note: Semantic Versioning
|
|
|
|
Swagger-UI's internal APIs are _not_ part of our public contract, which means that they can change without the major version changing.
|
|
|
|
If your custom plugins wrap, extend, override, or consume any internal core APIs, we recommend specifying a specific minor version of Swagger-UI to use in your application, because they will _not_ change between patch versions.
|
|
|
|
If you're installing Swagger-UI via NPM, for example, you can do this by using a tilde:
|
|
|
|
```js
|
|
{
|
|
"dependencies": {
|
|
"swagger-ui": "~3.11.0"
|
|
}
|
|
}
|
|
```
|
|
|
|
### `fn.opsFilter`
|
|
|
|
When using the `filter` option, tag names will be filtered by the user-provided value. If you'd like to customize this behavior, you can override the default `opsFilter` function.
|
|
|
|
For example, you can implement a multiple-phrase filter:
|
|
|
|
```js
|
|
const MultiplePhraseFilterPlugin = function() {
|
|
return {
|
|
fn: {
|
|
opsFilter: (taggedOps, phrase) => {
|
|
const phrases = phrase.split(", ")
|
|
|
|
return taggedOps.filter((val, key) => {
|
|
return phrases.some(item => key.indexOf(item) > -1)
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|