Comments (14)
It is indeed json-schema-deref-sync
not handling yaml files.
You can see the issue I've opened here and the PR for fixing this issue here, although I'm not sure the maintainer would like to add this functionality.
from openapi-validator-middleware.
Hi @kobik @Fillosof, it appears you have found the root cause and thanks for the effort. Just want to let you know I had the same issue after upgrading to 1.0.8
but it worked well with 0.9.0
.
from openapi-validator-middleware.
Hi @Fillosof,
Thanks for reporting the problem.
Can you please provide the stack of the error and also if possible definition files for reproducing the problem.
from openapi-validator-middleware.
Thank you @kobik for the quick answer.
Here Error stack:
TypeError: Cannot read property 'countries.yaml#' of undefined
at /home/api/node_modules/json-schema-deref-sync/lib/utils.js:84:17
at Array.reduce (<anonymous>)
at Object.getRefPathValue (/home/api/node_modules/json-schema-deref-sync/lib/utils.js:83:15)
at getRefSchema (/home/api/node_modules/json-schema-deref-sync/lib/index.js:99:18)
at Object.<anonymous> (/home/api/node_modules/json-schema-deref-sync/lib/index.js:236:24)
at walker (/home/api/node_modules/traverse/index.js:190:22)
at /home/api/node_modules/traverse/index.js:208:29
at Array.forEach (<anonymous>)
at forEach (/home/api/node_modules/traverse/index.js:298:31)
at walker (/home/api/node_modules/traverse/index.js:203:13)
at /home/api/node_modules/traverse/index.js:208:29
at Array.forEach (<anonymous>)
at forEach (/home/api/node_modules/traverse/index.js:298:31)
at walker (/home/api/node_modules/traverse/index.js:203:13)
at walk (/home/api/node_modules/traverse/index.js:226:7)
at Traverse.forEach (/home/api/node_modules/traverse/index.js:50:18)
at derefSchema (/home/api/node_modules/json-schema-deref-sync/lib/index.js:223:27)
at deref (/home/api/node_modules/json-schema-deref-sync/lib/index.js:310:13)
at Object.buildSchemaSync (/home/api/node_modules/api-schema-builder/src/index.js:35:26)
at Object.init (/home/api/node_modules/express-ajv-swagger-validation/src/middleware.js:25:32)
at Object.<anonymous> (/home/api/dist/server.js:21:28)
at Generator.next (<anonymous>)
and swagger files: link
from openapi-validator-middleware.
Thanks @Fillosof, the error is coming from json-schema-deref-sync
.
I'll investigate this further.
from openapi-validator-middleware.
@Fillosof are you sure it's working with OIA2?
Do you mean that you've being using the same document, just in OIA2 format?
From what I see the problem is even bigger as json-schema-deref-sync
supports loading only refs to json files and not yaml ones.
This would require us to rethink of how to handle dereferencing properly.
from openapi-validator-middleware.
@kobik I think issue somewhere in the parser.
Here old swagger 2.0
files.
It's yaml too but work without any issues.
from openapi-validator-middleware.
Thank you @kobik
Then all its left is to pray and believe in a bright future.
Because in another case I need precompile swagger file, and its make it 4x bigger, thats slow down startup time by 2-3 sec.((((
from openapi-validator-middleware.
@superliuwr Thanks man, you save my day))))
But as I check it's don't support nullable: true
parameters in the type definition((((
So I still need, wait for the update to fully move to OAS 3 (((
from openapi-validator-middleware.
@Fillosof, until my fix gets merged, you can achieve nullable like behavior by adding null to the supported types of the property.
timezone:
type:
- 'string'
- 'null'
from openapi-validator-middleware.
Quick update,
Waiting for json-schema-deref-sync devs to publish a new version with my fix.
In the meanwhile I've prepared a PR in api-schema-builder.
from openapi-validator-middleware.
@kobik Thank You, now I had a hope to clear a mess, that I created to make it work
from openapi-validator-middleware.
If you'd like a better json ref resolver, we've got a fantastic one over at stoplightio/json-ref-resolver.
It's powering everything throughout Studio, Prism, Spectral, etc., and is as performant as it is powerful.
from openapi-validator-middleware.
Fixed #103
from openapi-validator-middleware.
Related Issues (20)
- Unknown query parameters handling
- How to Validate multiple versions HOT 2
- Inconsistent body validation behavior HOT 5
- Internationalization HOT 3
- simple parent child spec fails HOT 3
- Invalid Server URL error HOT 1
- Regression? Express + OpenAPI 3.0 + Multer + multipart/form-data rejects valid file HOT 1
- Update lockfile to automatically remove the vulnerability introduced by validator HOT 1
- what is require('../../src/middleware') meant to reference? HOT 4
- Parameter Serialization support
- contentTypeValidation boolean not supported for Open API 3.0
- Validate Response - Express HOT 1
- OpenAPI v3.1 Support HOT 3
- Path trailing parameter not validated as required HOT 2
- Are there any plans to add support of response validation? HOT 1
- Not validating if there is required header or query param HOT 2
- Circular references not supported ?
- Fastify integration fails when using fastify-multipart
- the field validation works with openApi 3.0.0? HOT 2
- Is it maintained?
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 openapi-validator-middleware.