私は 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);
}