# angular-swagger-ui **Repository Path**: mirrors_addons/angular-swagger-ui ## Basic Information - **Project Name**: angular-swagger-ui - **Description**: An angularJS implementation of Swagger UI - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-03 - **Last Updated**: 2025-08-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # angular-swagger-ui `angular-swagger-ui` is an angularJS implementation of OpenAPI UI [OpenAPI](https://www.openapis.org) (aka [Swagger](https://swagger.io)) helps you documenting your RESTful API. OpenAPI UI helps developers discovering your RESTful API by providing an online documentation with an integrated API explorer. ### Warning > By default, only OpenAPI 2.0 is supported. To handle OpenAPI 3.0.0 please add module `openapi3-converter` see [Enable OpenAPI 3.0.0](#enable-openapi-300). To handle OpenAPI 1.2 please add module `swagger1-converter` see [Enable OpenAPI 1.2](#enable-openapi-12). To handle authorization please add module `swagger-auth` see [Enable authorization](#enable-authorization) To handle YAML please add module `swagger-yaml-parser` see [Enable YAML](#enable-yaml) ## Demo A sample app using `angular-swagger-ui` is available here: http://orange-opensource.github.io/angular-swagger-ui ## Quick Start ### Install `npm install angular-swagger-ui` ### Dependencies 1. [angularJS](https://angularjs.org) 2. [bootstrap CSS](http://getbootstrap.com) 3. [angular-ui-bootstrap](https://angular-ui.github.io/bootstrap/) (required only if using [Authorization](#enable-authorization)) ## License All code in this repository is covered by the [MIT license](http://opensource.org/licenses/MIT). See LICENSE file for copyright details. ## Getting Started Include `angular-swagger-ui` as a dependency into your application As some properties of OpenAPI specifications can be formatted as HTML: * You **SHOULD** include `ngSanitize` as a dependency into your application (avoids JS injection) if OpenAPI specifications are loaded from **untrusted** sources (see `dist/index.html` as an example) * You **CAN** add `trusted-sources="true"` as directive parameter (avoids embedding `ngSanitize`) if OpenAPI specifications are loaded from **trusted** sources (see `src/index.html` as an example) * You **MUST** at least choose one of the two previous solutions ```html ``` Create an HTML element in your angularJS application's template or in your HTML page ```html
``` Add `swagger-ui.min.js` and `angular.min.js` at the end of the body ```html ... ``` Add `swagger-ui.min.css` and `bootstrap.min.css` to the head of the HTML page. ```html ... ``` ## Parameters #### API explorer Display or not API explorer, default is `false` ```html
``` #### OpenAPI specification loading indicator `yourScopeVariable` will be assigned to `true` or `false` depending on OpenAPI specification loading status ```html
loading ...
``` #### Error handler Define an error handler to catch errors, if none defined `console.error` is used ```html
``` ```js $scope.yourErrorHandler = function(/*String or Object*/ message, /*Integer*/ code){ } ``` #### Permalinks Allows having a URL direct access to a group of operations or to an operation and making it unfolded at startup ```html
``` #### Download Display or not a link to download swagger file. ```html
``` #### OpenAPI validator Disable OpenAPI validator or define a custom OpenAPI validator. If parameter not defined, the validator will be 'http://online.swagger.io/validator' ```html
``` #### Parser type OpenAPI specification parser is chosen depending on the `Content-Type` of the specification response. If host serving your OpenAPI specification does not send `Content-Type: application/json` then you can force the parser to JSON: ```html
``` #### Template URL Define a custom template to be used by OpenAPIUI ```html
``` #### Inherited properties Allows displaying inherited properties of polymorphic models ```html
``` #### Input type and input ##### Render an OpenAPI specification from JSON object ```html
``` ##### Render an OpenAPI specification from YAML string Make sure to use module `swagger-yaml-parser`, see [Enable YAML](#enable-yaml) ```html
``` ##### Render an OpenAPI specification from URL (same behavior as using "url" parameter) ```html
``` ## i18n #### Built-in languages `angular-swagger-ui` is available in english and french, english is used by default To use french, add `fr.min.js` at the end of the body ```html ... ``` Set language to french at startup ```html ``` Set language to french at runtime ```html ``` #### Add languages You can add your own languages, see `src/scripts/i18n/en.js` to find the keys you have to override ```html ``` #### Internationalize your app You can also use `swaggerTranslator` to internationalize your app by using a service, a directive or a filter ```html ...
... ``` ## Customization #### Enable OpenAPI 3.0.0 See [OpenAPI 3.0.0 spec](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md). Add `openapi3-converter.min.js` at the end of the body ```html ... ``` #### Enable authorization `oauth` is not implemented, only `basic` and `API key` authorizations are implemented. Add `swagger-auth.min.js` at the end of the body ```html ... OR ... ``` #### Enable OpenAPI [aka Swagger] 1.2 See [OpenAPI 1.2 spec](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/1.2.md). Add `swagger1-converter.min.js` at the end of the body ```html ... ``` #### Enable OpenAPI external references See [OpenAPI 2.0 spec](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#relative-schema-file-example). Add `swagger-external-references.min.js` at the end of the body ```html ... ``` #### Enable XML formatter on API explorer responses Add `swagger-xml-formatter.min.js` at the end of the body ```html ... ``` #### Enable YAML Add [js-yaml library](https://cdnjs.com/libraries/js-yaml). Add `swagger-yaml-parser.min.js` at the end of the body ```html ... ``` #### Enable markdown Add [marked library](https://cdnjs.com/libraries/marked). Add `swagger-markdown.min.js` at the end of the body ```html ... ``` #### Writing your own modules Modifying `angular-swagger-ui` can be achieved by writing your own modules. As an example your can have a look at the ones in `src/scripts/modules`. A module is an object (can be a service) having a function `execute` which must return a promise. You can make your module modifying behaviours at different phases: * `BEFORE_LOAD`: allows modifying OpenAPI specification request before it is sent * `BEFORE_PARSE`: allows modifying OpenAPI specification after it has been loaded * `PARSE`: allows adding an OpenAPI parser for content types other than JSON * `BEFORE_DISPLAY`: allows modifying internal parsed OpenAPI specification before it is displayed * `BEFORE_EXPLORER_LOAD`: allows modifying API explorer request before it is sent * `AFTER_EXPLORER_LOAD`: allows modifying API explorer response before it is displayed ```js angular .module('myApp', ['swaggerUi']) .service('myModule', function($q) { this.execute = function(data) { var deferred = $q.defer(); // if nothing done: call deferred.resolve(false); // if success: call deferred.resolve(true); // if error: call deferred.reject({message: 'error message', code: 'error_code'}); return deferred.promise; } }) .run(function(swaggerModules, myModule){ // default priority is 1 // higher is the priority, sooner the module is executed at the specified phase swaggerModules.add(swaggerModules.BEFORE_LOAD, myModule, priority); }) ... ```