如何解决如何在Swagger中使用参数操作GET方法?
我正在使用Swagger编写Laravel API的文档,有时除了POSTMAN之外还进行了测试,问题是带有参数的GET方法不起作用Route::get('/searchProduct/{id}','Api\ReportController@getProductsByID');
但是,如果GET方法没有参数,则可以完美工作。在Swagger中,我意识到当我进行查询时,我没有在{id}
中输入参数,但是我相信在{id}?id=4
之后
这是我的路线
My route
Route::get('/searchProduct/{id}','Api\ReportController@getProductsByID');
Result in Swagger
www.x.cl/api/searchProduct/{id}?id=4 //ERROR
How it should work
www.x.cl/api/searchProduct/4
因为在POSTMAN中,我仅通过编号更改ID,搜索对我有效。
这是我的控制器
/**
* @OA\Get(
* path="/api/searchProduct/{id}",* summary="Search Product by Status",* description="Lorem ipsun",* security={
* {"bearer_token":{}},* },* @OA\Parameter(
* name="id",* in="query",* description="Buscar por estado",* required=true,* ),* @OA\Response(
* response=200,* description="OK",* @OA\MediaType(
* mediaType="application/json",* )
* ),* @OA\Response(
* response="default",* description="Ha ocurrido un error."
* ),* @OA\Response(
* response="401",* description="No se ha autenticado,ingrese el token."
* ),* )
*/
public function getProductsByID($uuid){
$validated = Product::status($uuid);
return ReportResource::collection($validated);
}
解决方法
在此处尝试用in="query",
替换in="path",
:
* @OA\Parameter(
* name="id",* in="query",* description="Buscar por estado",* required=true,* ),
查询是指“查询字符串”,即URL中?
之后的与号分隔的键/值对的集合。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。