Hi Austin,

 

It’s kinda hard to test because your definition is indeed not valid.

You can reference paths, not operations.

 

 

 

From: <[email protected]> on behalf of Austin 
<[email protected]>
Reply-To: "[email protected]" 
<[email protected]>
Date: Thursday, 20 July 2017 at 12:23
To: Swagger <[email protected]>
Subject: Path params defined in path objects with shared method $ref files 
behaving oddly in Swagger UI

 

I am working to document an API in Swagger 2.0 with multiple paths that share 
identical query string parameters and return schema format for their get 
methods: 

 

        "/customers/invoices/{invoice}": {

            "parameters": [

                {

                    "name": "invoice",

                    "in": "path",

                    "description": "The Invoice id.",

                    "required": true,

                    "type": "string"

                }

            ],

            "get": {

                "$ref": "resources/invoices/get.json"

            }

        },

        "/customers/{customer}/invoices": {

            "parameters": [

                {

                    "name": "customer",

                    "in": "path",

                    "description": "The customer id.",

                    "required": true,

                    "type": "string"

                }

            ],

            "get": {

                "$ref": "resources/invoices/get.json"

            }

        },

        "/customers/{customer}/invoices/{invoice}": {

            "parameters": [

                {

                    "name": "customer",

                    "in": "path",

                    "description": "The customer id.",

                    "required": true,

                    "type": "string"

                },

                {

                    "name": "invoice",

                    "in": "path",

                    "description": "The Invoice id.",

                    "required": true,

                    "type": "string"

                }

            ],

            "get": {

                "$ref": "resources/invoices/get.json"

            }

        }

 

Now when I view this in Swagger UI v3.0.19 the path parameters that are defined 
up in the path objects are somehow being shared across all three paths as being 
required. I would expect that the first two should only show their single path 
parameter.  I have tried changing all the path parameters in each one to be 
something unique from the others and yet they still get lumped together. Aside 
from this the $ref doesn't appear to cause any other issue as all three do show 
the additional shared querystring parameters and the shared schema just fine. 
I've also tried removing the shared query string parameters from the shared 
$ref file to see if somehow that was causing them to share all parameters and 
it didn't stop the problem.

 

I'm a bit confused on whether what I am doing is technically allowable or not 
because in the guidelines for reuse it states that Operations can be referenced 
(https://github.com/OAI/OpenAPI-Specification/blob/master/guidelines/REUSE.md#operations),
 but the example shown appears to be a path object that is being referenced and 
not the operation object 
(https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#path-item-object).
 

 

Am I missing something here or is this just an issue in the latest version of 
Swagger UI maybe?

 

 

-- 
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.


-- 
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.

Reply via email to