本文介绍了具有查询字符串的 Swagger API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想部署一个带有查询字符串的 API.这就是 API
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这是我的实施方式
"/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" } } } }国家在此为可选参数.我希望 URL 仅在用户输入某个值时才显示国家/地区,否则不应在 URL 中显示.
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.
推荐答案您不能在 Swagger 中将查询参数描述为路径的一部分.您必须将这些显式声明为查询参数.
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" } } } }更多推荐
具有查询字符串的 Swagger API
发布评论