@@ -1048,6 +1048,12 @@ percentEncodeSwagger :: Swagger -> Swagger
10481048percentEncodeSwagger s = s
10491049 { _swaggerDefinitions =
10501050 InsOrdHashMap.mapKeys percentEncodeT $ _swaggerDefinitions s
1051+ , _swaggerParameters =
1052+ InsOrdHashMap.mapKeys percentEncodeT $ _swaggerParameters s
1053+ , _swaggerResponses =
1054+ InsOrdHashMap.mapKeys percentEncodeT $ _swaggerResponses s
1055+ , _swaggerSecurityDefinitions =
1056+ InsOrdHashMap.mapKeys percentEncodeT $ _swaggerSecurityDefinitions s
10511057 }
10521058
10531059instance ToJSON SecurityScheme where
@@ -1121,10 +1127,11 @@ instance ToJSON Example where
11211127 toJSON = toJSON . Map.mapKeys show . getExample
11221128
11231129instance ToJSON Reference where
1124− toJSON (Reference ref) = object [ "$ref" .= ref ]
1130+ toJSON (Reference ref) = object [ "$ref" .= percentEncodeT ref ]
11251131
11261132referencedToJSON :: ToJSON a => Text -> Referenced a -> Value
1127−referencedToJSON prefix (Ref (Reference ref)) = object [ "$ref" .= (prefix <> ref) ]
1133+referencedToJSON prefix (Ref (Reference ref)) =
1134+ object [ "$ref" .= (prefix <> percentEncodeT ref) ]
11281135referencedToJSON _ (Inline x) = toJSON x
11291136
11301137instance ToJSON (Referenced Schema) where toJSON = referencedToJSON "#/definitions/"
@@ -1193,7 +1200,13 @@ instance FromJSON Swagger where
11931200percentDecodeSwagger :: Swagger -> Swagger
11941201percentDecodeSwagger s = s
11951202 { _swaggerDefinitions =
1196− InsOrdHashMap.mapKeys percentEncodeT $ _swaggerDefinitions s
1203+ InsOrdHashMap.mapKeys percentDecodeT $ _swaggerDefinitions s
1204+ , _swaggerParameters =
1205+ InsOrdHashMap.mapKeys percentDecodeT $ _swaggerParameters s
1206+ , _swaggerResponses =
1207+ InsOrdHashMap.mapKeys percentDecodeT $ _swaggerResponses s
1208+ , _swaggerSecurityDefinitions =
1209+ InsOrdHashMap.mapKeys percentDecodeT $ _swaggerSecurityDefinitions s
11971210 }
11981211
11991212instance FromJSON SecurityScheme where
@@ -1288,7 +1301,7 @@ instance FromJSON PathItem where
12881301 parseJSON = sopSwaggerGenericParseJSON
12891302
12901303instance FromJSON Reference where
1291− parseJSON (Object o) = Reference <$> o .: "$ref"
1304+ parseJSON (Object o) = Reference . percentDecodeT <$> o .: "$ref"
12921305 parseJSON _ = empty
12931306
12941307referencedParseJSON :: FromJSON a => Text -> Value -> JSON.Parser (Referenced a)