diff --git a/README.md b/README.md index 5412238c..d4094f18 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ ReDoc makes use of the following [vendor extensions](http://swagger.io/specifica * **function**: A getter function. Must return a number representing the offset (in pixels); * `suppress-warnings` - if set, warnings are not rendered at the top of documentation (they still are logged to the console). * `lazy-rendering` - if set, enables lazy rendering mode in ReDoc. This mode is useful for APIs with big number of operations (e.g. > 50). In this mode ReDoc shows initial screen ASAP and then renders the rest operations asynchronously while showing progress bar on the top. Check out the [demo](\\rebilly.github.io/ReDoc) for the example. +* `hide-hostname` - if set, the protocol and hostname is not shown in the method definition. * `expand-responses` - specify which responses to expand by default by response codes. Values should be passed as comma-separated list without spaces e.g. `expand-responses="200,201"`. Special value `"all"` expands all responses by default. Be careful: this option can slow-down documentation rendering time. ## Advanced usage diff --git a/lib/components/EndpointLink/endpoint-link.spec.ts b/lib/components/EndpointLink/endpoint-link.spec.ts index 99664065..880ac312 100644 --- a/lib/components/EndpointLink/endpoint-link.spec.ts +++ b/lib/components/EndpointLink/endpoint-link.spec.ts @@ -11,6 +11,7 @@ import { getChildDebugElement } from '../../../tests/helpers'; import { EndpointLink } from './endpoint-link'; import { SpecManager } from '../../utils/spec-manager'; +import { OptionsService } from '../../services/'; describe('Redoc components', () => { beforeEach(() => { @@ -20,9 +21,11 @@ describe('Redoc components', () => { let builder; let component: EndpointLink; let specMgr: SpecManager; + let opts: OptionsService; - beforeEach(async(inject([SpecManager], (_specMgr) => { + beforeEach(async(inject([SpecManager, OptionsService], (_specMgr, _opts) => { specMgr = _specMgr; + opts = _opts; }))); beforeEach(() => { @@ -44,7 +47,7 @@ describe('Redoc components', () => { }; specMgr.init(); - component = new EndpointLink(specMgr); + component = new EndpointLink(specMgr, opts); }); it('should replace // with appropriate protocol', () => { diff --git a/lib/components/EndpointLink/endpoint-link.ts b/lib/components/EndpointLink/endpoint-link.ts index 263e11af..b5c9f455 100644 --- a/lib/components/EndpointLink/endpoint-link.ts +++ b/lib/components/EndpointLink/endpoint-link.ts @@ -2,6 +2,7 @@ import { Component, ChangeDetectionStrategy, Input, OnInit, HostListener, HostBinding} from '@angular/core'; import { BaseComponent, SpecManager } from '../base'; import { trigger, state, animate, transition, style } from '@angular/core'; +import { OptionsService } from '../../services/'; export interface ServerInfo { description: string; @@ -38,7 +39,7 @@ export class EndpointLink implements OnInit { this.expanded = !this.expanded; } - constructor(public specMgr:SpecManager) { + constructor(public specMgr:SpecManager, public optionsService: OptionsService) { this.expanded = false; } @@ -60,7 +61,11 @@ export class EndpointLink implements OnInit { } getBaseUrl():string { - return this.specMgr.apiUrl; + if (this.optionsService.options.hideHostname) { + return ''; + } else { + return this.specMgr.apiUrl; + } } ngOnInit() { diff --git a/lib/services/options.service.ts b/lib/services/options.service.ts index d5bd5b27..4da11b42 100644 --- a/lib/services/options.service.ts +++ b/lib/services/options.service.ts @@ -13,6 +13,7 @@ const OPTION_NAMES = new Set([ 'disableLazySchemas', 'specUrl', 'suppressWarnings', + 'hideHostname', 'lazyRendering', 'expandResponses' ]); @@ -22,6 +23,7 @@ interface Options { disableLazySchemas?: boolean; specUrl?: string; suppressWarnings?: boolean; + hideHostname?: boolean; lazyRendering?: boolean; expandResponses?: Set | 'all'; $scrollParent?: HTMLElement | Window; @@ -87,6 +89,7 @@ export class OptionsService { if (isString(this._options.disableLazySchemas)) this._options.disableLazySchemas = true; if (isString(this._options.suppressWarnings)) this._options.suppressWarnings = true; + if (isString(this._options.hideHostname)) this._options.hideHostname = true; if (isString(this._options.lazyRendering)) this._options.lazyRendering = true; if (isString(this._options.expandResponses)) { let str = this._options.expandResponses as string;