swagger-parser-reftychen
v0.0.9
Published
Swagger 2.0 and OpenAPI 3.0 parser and validator for Node and browsers
Downloads
14
Maintainers
Readme
基于原swagger-parser
原因: 官方解析时如果存在不存在的schema的话会报错,避免这条不存在的报错
修改文件 dist/swagger-parser.js 10188行
已上传npm
yarn || npm
npm i swagger-parser-reftychen
**引入注意,在直接引入的时候开发环境没有问题但应用到生产环境build打包后可能会存在打入的是node环境的执行代码导致bug请自行调试,当前版本只修改了dist浏览器端的代码 lib文件内的并未修改
import * as Swagger from 'swagger-parser-reftychen/dist/swagger-parser'
原则上应该下载官方架子修改里面依赖的 json-schema-ref-parser 的 dereference 方法 (pointer.js 86行的代码)然后通过官方的build:browser 方法构建出 dist 的内容,同时也可以修改json-schema-ref-parser等方法,但是本人比较懒就直接修改了 swagger-parser的dist文件。
以下是官方原文 2019-06-05及以前的 Swagger 2.0 and OpenAPI 3.0 parser/validator
Features
- Parses Swagger specs in JSON or YAML format
- Validates against the Swagger 2.0 schema or OpenAPI 3.0 Schema
- Resolves all
$ref
pointers, including external files and URLs - Can bundle all your Swagger files into a single file that only has internal
$ref
pointers - Can dereference all
$ref
pointers, giving you a normal JavaScript object that's easy to work with - Tested in Node.js and all modern web browsers on Mac, Windows, and Linux
- Tested on over 1,000 real-world APIs from Google, Instagram, Spotify, etc.
- Supports circular references, nested references, back-references, and cross-references
- Maintains object reference equality —
$ref
pointers to the same value always resolve to the same object instance
Related Projects
Example
SwaggerParser.validate(myAPI, function(err, api) {
if (err) {
console.error(err);
}
else {
console.log("API name: %s, Version: %s", api.info.title, api.info.version);
}
});
Or use Promises syntax instead. The following example is the same as above:
SwaggerParser.validate(myAPI)
.then(function(api) {
console.log("API name: %s, Version: %s", api.info.title, api.info.version);
})
.catch(function(err) {
console.error(err);
});
For more detailed examples, please see the API Documentation
Installation
Node
Install using npm:
npm install swagger-parser
Then require it in your code:
var SwaggerParser = require('swagger-parser');
Web Browsers
Reference swagger-parser.js
or swagger-parser.min.js
in your HTML:
<script src="https://cdn.rawgit.com/JS-DevTools/swagger-parser/dist/swagger-parser.js"></script>
<script>
SwaggerParser.validate(myAPI, function(err, api) {
if (err) {
console.error(err);
}
else {
console.log("API name: %s, Version: %s", api.info.title, api.info.version);
}
});
</script>
API Documentation
Full API documentation is available right here
Contributing
I welcome any contributions, enhancements, and bug-fixes. File an issue on GitHub and submit a pull request.
Building/Testing
To build/test the project locally on your computer:
Clone this repo
git clone https://github.com/APIDevTools/swagger-parser.git
Install dependencies
npm install
Run the build script
npm run build
Run the tests
npm test
Start the local web server
npm start
(then browse to http://localhost:8080/test/)
License
Swagger Parser is 100% free and open-source, under the MIT license. Use it however you want.
Big Thanks To
Thanks to these awesome companies for their support of Open Source developers ❤