Comments (2)
That did it! Thank you!
from swagger-ui-express.
If you have refs in your yaml, those will be loaded into your JSON.
You need to use something between loading the yaml file and serving the JSON to resolve the references in the JSON, js-yaml
doesn't do that.
Something like json-refs would.
In your particular use case, this should work
import jsonRefs from 'json-refs';
// ...
// setup our swagger page
const openApiSpecPath = path.join(__dirname, '..', 'docs', 'open-api.yml');
const openApiSpecFile = fs.readFileSync(openApiSpecPath, 'utf8');
const swaggerDocument = yaml.load(openApiSpecFile);
const resolvedSwaggerDocument = await jsonRefs.resolveRefs(swaggerDocument, {
location: openApiSpecPath,
loaderOptions: {
processContent: function (res, callback) {
callback(yaml.load(res.text)); // this callback is required to resolve those JSON references
}
}
});
app.use('/api/swagger', swaggerUi.serve, swaggerUi.setup(resolvedSwaggerDocument.resolved));
Note you might not be set up properly to use top level await, so you may have to create your own async function.
from swagger-ui-express.
Related Issues (20)
- Apply bearer auth to global scope is not working. HOT 3
- Cannot load two different API specs HOT 6
- Changelog please HOT 2
- I don't understand where swagger.json gets generated... HOT 3
- Getting string instead of array when using multipart form data HOT 2
- feature: ability to serve the docs as a single-file HOT 1
- totally does not load on production HOT 3
- oneOf, anyOf, allOf, not
- refused to execute in browser HOT 3
- Array of strings sent through formdata are converted to array with single string when recieved on nodejs server
- My project is having problems because of assert HOT 3
- "Could not render OperationContainer, see the console."
- No operations defined in spec!
- Support for OpenAPI Specification 3.1.0 HOT 1
- Using swagger-ui for custom UI rather than swagger-ui-dist?
- [BUG] Changing host on the fly before load is not working
- Vulnerabilities in express
- Route params not filling successfully in nested api controller files using "mergeParams: true" HOT 1
- [@types/swagger-ui-express] About the impossibility of adding custom js
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swagger-ui-express.