I believe the Swagger 2 specification does indeed allow additional properties and that the default value is an empty schema. Here is my reasoning:
This is the Swagger 2 definition for additional properties. The following properties are taken from the JSON Schema definition but > their definitions were adjusted to the Swagger Specification. Their > definition is the same as the one from JSON Schema, only where the original > definition references the JSON Schema definition, the Schema Object > definition is used instead. > items > allOf > properties > additionalProperties And this is the JSON Schema draft 4 specification's definition of additional properties 5.4.4. additionalProperties, properties and patternProperties > 5.4.4.1. Valid values > The value of "additionalProperties" MUST be a boolean or an object. > If it is an object, it MUST also be a valid JSON Schema. Swagger 2 uses the same definition from the JSON Schema specification unless the value is a JSON Schema. Since the value false is a Boolean we take the definition from the JSON Schema specification which says it is allowed. In regards to the default value again we take the definition from the JSON Schema draft 4 specification: 5.4.4.3. Default values > If either "properties" or "patternProperties" are absent, they can be > considered present with an empty object as a value. > If "additionalProperties" is absent, it may be considered present > with an empty schema as a value. Sources: Swagger 2 specification: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md JSON Schema draft 4 specification: http://json-schema.org/specification-links.html#draft-4 On Friday, 29 September 2017 06:22:35 UTC+10, Ron wrote: > > The 2.0 specification doesn’t allow setting additionalProperties: false. > It was intended to be the default definition but was never clarified in the > spec. > > > > > > > > *From: *<[email protected] <javascript:>> on behalf of > Yuting <[email protected] <javascript:>> > *Reply-To: *"[email protected] <javascript:>" < > [email protected] <javascript:>> > *Date: *Thursday, September 28, 2017 at 00:15 > *To: *Swagger <[email protected] <javascript:>> > *Subject: *How do I use swagger api to generate swagger with > additionalProperties as false for object > > > > I somehow have to generate a swagger doc with addtionalProperties as false > to not allow additional properties. I looked at > https://github.com/swagger-api/swagger-core/blob/master/modules/swagger-models/src/main/java/io/swagger/models/ModelImpl.java > > > but setAdditionalProperties accept a Property only, how do I set it with a > boolean value? > > public void setAdditionalProperties(Property additionalProperties) { > > > > type(OBJECT); > > > > this.additionalProperties = additionalProperties; > > } > > "TestDTO" : { > "type" : "object", > "additionalProperties":false > "properties" : { > "property1" : { > "description" : "This is a test object.", > "$ref" : "#/definitions/TestDTO" > }, > "perperty2" : { > "type" : "string", > "description" : "this is a property." > } > } > }, > > -- > You received this message because you are subscribed to the Google Groups > "Swagger" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > For more options, visit https://groups.google.com/d/optout. > > -- You received this message because you are subscribed to the Google Groups "Swagger" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
