git.iko.soy/typeable/swagger2
on master help sign in
Allow allOf to accept referenced schemas fix #119
commit573b816a703f05f9d8245e27741682ca03e1fc12 authorRodrigo Setti <rodrigosetti@gmail.com> dateFri 8 Sep 2017, 17:59 (9 years ago) parent0240208
4 files changed+38−2
CHANGELOG.md+5 src/Data/Swagger/Internal.hs+1−1 swagger2.cabal+1−1 test/Data/SwaggerSpec.hs+31
CHANGELOG.md+5
@@ -1,3 +1,8 @@
1+2.1.4.2
2+-------
3+
4+* `allOf` accepts reference schema (see [#119](https://github.com/GetShopTV/swagger2/issues/119))
5+
162.1.4.1
27-------
38
src/Data/Swagger/Internal.hs+1−1
@@ -554,7 +554,7 @@ data Schema = Schema
554554 , _schemaDescription :: Maybe Text
555555 , _schemaRequired :: [ParamName]
556556
557− , _schemaAllOf :: Maybe [Schema]
557+ , _schemaAllOf :: Maybe [Referenced Schema]
558558 , _schemaProperties :: InsOrdHashMap Text (Referenced Schema)
559559 , _schemaAdditionalProperties :: Maybe (Referenced Schema)
560560
swagger2.cabal+1−1
@@ -1,5 +1,5 @@
11name: swagger2
2−version: 2.1.4.1
2+version: 2.1.4.2
33synopsis: Swagger 2.0 data model
44description:
55 This library is inteded to be used for decoding and encoding Swagger 2.0 API
test/Data/SwaggerSpec.hs+31
@@ -42,6 +42,7 @@ spec = do
4242 describe "Parameters Definition Object" $ paramsDefinitionExample <=> paramsDefinitionExampleJSON
4343 describe "Responses Definition Object" $ responsesDefinitionExample <=> responsesDefinitionExampleJSON
4444 describe "Security Definitions Object" $ securityDefinitionsExample <=> securityDefinitionsExampleJSON
45+ describe "Composition Schema Example" $ compositionSchemaExample <=> compositionSchemaExampleJSON
4546 describe "Swagger Object" $ do
4647 context "Todo Example" $ swaggerExample <=> swaggerExampleJSON
4748 context "PetStore Example" $
@@ -1614,3 +1615,33 @@ petstoreExampleJSON = [aesonQQ|
16141615 }
16151616}
16161617|]
1618+
1619+compositionSchemaExample :: Schema
1620+compositionSchemaExample = mempty
1621+ & type_ .~ SwaggerObject
1622+ & Data.Swagger.allOf ?~ [
1623+ Ref (Reference "Other")
1624+ , Inline (mempty
1625+ & type_ .~ SwaggerObject
1626+ & properties .~
1627+ [ ("greet", Inline $ mempty
1628+ & type_ .~ SwaggerString) ])
1629+ ]
1630+
1631+compositionSchemaExampleJSON :: Value
1632+compositionSchemaExampleJSON = [aesonQQ|
1633+{
1634+ "type": "object",
1635+ "allOf": [
1636+ {
1637+ "$ref": "#/definitions/Other"
1638+ },
1639+ {
1640+ "type": "object",
1641+ "properties": {
1642+ "greet": { "type": "string" }
1643+ }
1644+ }
1645+ ]
1646+}
1647+|]