Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
231 views
in Technique[技术] by (71.8m points)

Swagger API which is having query string

I want to deploy an API which is having query string.This is the API

v1/products?q=circuit breaker&locale=en-GB&pageSize=8&pageNo=1&project=GLOBAL

Here is how i am implementing

"/v1/products?q={searchText}&locale={ctrCode}&pageSize={pageSize}&pageNo={pageNo}&project={project}&country={country}":{  
         "get":{  
            "tags":[  
               "Search Text"
            ],
            "summary":"Get Products by searching text, countrycode, page number, pagesize, project and country(optional)",
            "description":"Get Products by searching text, countrycode, page number, pagesize, project and country(optional)",
            "operationId":"getProductName",
            "produces":[  
               "application/json",
               "application/xml"
            ],
            "parameters":[  
               {  
                  "name":"searchText",
                  "in":"path",
                  "description":"The Product that needs to be fetched",
                  "required":true,
                  "type":"string"
               },
               {  
                  "name":"ctrCode",
                  "in":"path",
                  "description":"The Product locale needs to be fetched. Example=en-GB, fr-FR, etc.",
                  "required":true,
                  "type":"string"
               },
               {  
                  "name":"pageSize",
                  "in":"path",
                  "description":"The Product PageSize that needs to be fetched. Example=10, 20 etc.",
                  "required":true,
                  "type":"number"
               },
               {  
                  "name":"pageNo",
                  "in":"path",
                  "description":"The Product pageNo that needs to be fetched. Example=1,2 etc.",
                  "required":true,
                  "type":"number"
               },
               {  
                  "name":"project",
                  "in":"path",
                  "description":"The Project that needs to be fetched. Example=Mypact, DSL etc.",
                  "required":true,
                  "type":"string"
               },
               {  
                  "name":"country",
                  "in":"header",
                  "description":"The Country that needs to be fetched. Example=France, India etc.",
                  "required":false,
                  "type":"string"
               }
            ],
            "responses":{  
               "200":{  
                  "description":"successful operation",
                  "schema":{  
                     "$ref":"#/definitions/Products"
                  }
               },
               "400":{  
                  "description":"Invalid Product_id supplied"
               },
               "404":{  
                  "description":"Product not found"
               }
            }
         }
      }

The country is optional parameter in this. I want the URL should display country only when if user enter some value, else it should not be displayed in the URL.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can't describe query parameters as part of the path in Swagger. You have to declare those explicitly as query parameters.

"/v1/products":{  
         "get":{  
            "tags":[  
               "Search Text"
            ],
            "summary":"Get Products by searching text, countrycode, page number, pagesize, project and country(optional)",
            "description":"Get Products by searching text, countrycode, page number, pagesize, project and country(optional)",
            "operationId":"getProductName",
            "produces":[  
               "application/json",
               "application/xml"
            ],
            "parameters":[  
               {  
                  "name":"searchText",
                  "in":"query",
                  "description":"The Product that needs to be fetched",
                  "required":true,
                  "type":"string"
               },
               {  
                  "name":"ctrCode",
                  "in":"query",
                  "description":"The Product locale needs to be fetched. Example=en-GB, fr-FR, etc.",
                  "required":true,
                  "type":"string"
               },
               {  
                  "name":"pageSize",
                  "in":"query",
                  "description":"The Product PageSize that needs to be fetched. Example=10, 20 etc.",
                  "required":true,
                  "type":"number"
               },
               {  
                  "name":"pageNo",
                  "in":"query",
                  "description":"The Product pageNo that needs to be fetched. Example=1,2 etc.",
                  "required":true,
                  "type":"number"
               },
               {  
                  "name":"project",
                  "in":"query",
                  "description":"The Project that needs to be fetched. Example=Mypact, DSL etc.",
                  "required":true,
                  "type":"string"
               },
               {  
                  "name":"country",
                  "in":"query",
                  "description":"The Country that needs to be fetched. Example=France, India etc.",
                  "required":false,
                  "type":"string"
               }
            ],
            "responses":{  
               "200":{  
                  "description":"successful operation",
                  "schema":{  
                     "$ref":"#/definitions/Products"
                  }
               },
               "400":{  
                  "description":"Invalid Product_id supplied"
               },
               "404":{  
                  "description":"Product not found"
               }
            }
         }
      }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...