Comments (4)
The whole "JSON Schema v5" thing was a bit of a misunderstanding- that draft is mostly just draft-04 tidied up. the uriref
/uri-ref
format was something that slipped in but was never implemented because there's no way to detect "draft-05" as distinct from draft-04. In draft-06 (we gave up and skipped 5 because of the confusion) we added it properly as uri-reference
.
On the plus side (sort-of), unrecognized format
values are ignored so it's mostly harmless. But it should match the spec.
I'd advise against "additionalProperties": false
from openapi-specification.
But it should match the spec.
I know that v5 was a kind-of a misunderstanding, but anyway spec examples should really match the spec that they were created to illustrate…
I'd advise against
"additionalProperties": false
This one is just a suggestion. However, why not? ISTM that most of the time people should use that instead of the default, so it would not be that bad if a few examples in the documentation do that.
from openapi-specification.
However, why not?
Mostly, because it's something of a footgun and makes your schemas difficult if not impossible to re-use. Which, particularly when using a pet example (implicitly referencing the inheritance in the petstore example) is best avoided.
The re-use problems were mostly solved in OAS 3.1 / draft 2020-12 with unevaluatedProperties
, and I really don't want to generate an endless stream of complaints about additionalProperties
here from people who copy the example and then try to extend it.
ISTM that most of the time people should use that instead of the default
This impression is common among users of strictly typed languages and uncommon among users of dynamically typed languages.
from openapi-specification.
The re-use problems were mostly solved in OAS 3.1 / draft 2020-12 with
unevaluatedProperties
, and I really don't want to generate an endless stream of complaints aboutadditionalProperties
here from people who copy the example and then try to extend it.
Then would it be possible to add unevaluatedProperty
in some example, if it does (more or less) solve the re-use (inheritance) issue?
ISTM that most of the time people should use that instead of the default
This impression is common among users of strictly typed languages and uncommon among users of dynamically typed languages.
I do not buy this usual argument in full: if a dynamic person actually bothers to declare a schema, i.e. a type, I do not understand why they would stop midstream: they get all of the pain with only part of the benefit.
from openapi-specification.
Related Issues (20)
- Open Community (TDC) Meeting, Thursday 11 April 2024 HOT 7
- Reference schema property within a response HOT 2
- Open Community (TDC) Meeting, Thursday 18 April 2024 HOT 5
- Format Registry documentation is not accurate / well published HOT 4
- Add tokenExchange grant type to list of allowed grant types for oauth2 shape
- Open Community (TDC) Meeting, Thursday 25 April 2024 HOT 7
- Define and document our schema publishing process HOT 1
- Schema development: main or branch, in parallel or at release time?
- Should we-organize our GitHub pages to a directory on main?
- Why does the JSON schema for 3.0 specify patternProperties for component names but allows additional properties?
- Support for `multipart/mixed` (and possibly better `multipart/*` support in general) HOT 11
- `description`/`summary` for Paths Object
- Support `multipart/byteranges` for 206 responses
- Support application/json-seq and similar JSON-based sequential formats HOT 1
- Did we break 3.2 compatibility by removing the Path Item $ref special case? HOT 12
- pipeDelimited and spaceDelimited style examples can be unresolvable HOT 10
- Encoding Object `contentType` field: "comma-separated list of the two types"? HOT 8
- Add appendix "Informative references" to published spec documents HOT 4
- Open Community (TDC) Meeting, Thursday 02 May 2024 HOT 3
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-specification.