这是我的控制器,我在这里切换 swagger
class ProductController extends Controller
public function __construct()
{
$this->middleware('auth:api');
}
public function getdata()
{
$products = Product::get();
return view('table', [
'products'=>$products
]);
}
在这里我从数据库中获取所有数据
/**
* @return array<object string/int>
*
*
* @OA\Get(
* path="/api/products",
* tags={"Products"},
* summary="Get all products",
* description="For getting all datas should be pressed the button called 'try'",
* operationId="index",
* @OA\Parameter(
* name="paginate",
* in="query",
* description="Status values that needed to be considered for filter",
* required=true,
* explode=true,
* @OA\Schema(
* default="10",
* type="string",
* )
* ),
* @OA\Response(
* response=200,
* description="successful operation",
* ),
* security={{ "bearer": {} }}
* )
*/
public function index($paginate=10){
return UserResource::collection(Product::paginate($paginate));
}
我在这里存储了来自swagger的数据
/**
* @OA\Post(
* path="/api/products",
* tags={"Products"},
* summary="Create a new type of item to the product",
* operationId="store",
* @OA\RequestBody(
* description="Create a new item",
* required=true,
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="name",
* description="Give a new name to the product",
* type="string",
* ),
* @OA\Property(
* property="type",
* description="Give a new type to the product",
* type="string",
* ),
* @OA\Property(
* property="price",
* description="Give a new type to the product",
* type="string",
* ),
* @OA\Property(
* property="image",
* description="Give a new type to the product",
* type="file",
* ),
* ),
* ),
* ),
* @OA\Response(
* response=200,
* description="successful operation",
* ),
* security={{ "bearer": {} }}
* )
* /
public function store(ProductRequest $request)
{
$request->validated();
if ($request->hasFile('image')) {
$path = $request->file('image')->store('images', 'public');
$product = new Product;
$product->image = $path;
$product->name = $request->name;
$product->type = $request->type;
$product->price = $request->price;
$product->save();
}
return response()->json([
'status' => 'success',
'message' => 'Product created successfully',
'products' => $product,
]);
}
这里我只得到id选择的元素
/**
* @OA\Get(
* path="/api/product/{id}",
* tags={"Products"},
* summary="Show the choosen element",
* operationId="show",
* @OA\Parameter(
* name="id",
* in="path",
* description="Status values that needed to be considered for filter",
* required=true,
* explode=true,
* @OA\Schema(
* default="1",
* type="string",
* )
* ),
* @OA\Response(
* response=200,
* description="successful operation",
* ),
* security={{ "bearer": {} }}
* )
*
*/
public function show($id)
{
return UserResource::collection(Product::all()->keyBy->id);
}
这里的错误,当我试图改变数据库中的现有数据,我总是得到下面显示的错误。
/**
* @OA\Put(
* path="/api/product/{id}/update",
* tags={"Products"},
* summary="Update the choosen element",
* operationId="update",
* @OA\Parameter(
* name="id",
* in="path",
* description="Status values that needed to be considered for filter",
* required=true,
* @OA\Schema(
* type="string",
* )
* ),
* @OA\RequestBody(
* description="Update a new item",
* required=true,
* @OA\MediaType(
* mediaType="multipart/form-data",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="name",
* description="Update",
* type="string",
* ),
* @OA\Property(
* property="type",
* description="Update",
* type="string",
* ),
* @OA\Property(
* property="price",
* description="Update",
* type="string",
* ),
* @OA\Property(
* property="image",
* description="Update",
* type="file",
* ),
* ),
* ),
* ),
* @OA\Response(
* response=200,
* description="successful operation",
* ),
* @OA\Response(
* response=400,
* description="Invalid user supplied"
* ),
* @OA\Response(
* response=404,
* description="User not found"
* ),
* security={{ "bearer": {} }}
* )
*
*/
public function update(ProductRequest $request, $id){
/* Gate::authorize('update', $product); */
$product = Product::find($id);
if ($request->hasFile('image')) {
if (isset($product->image)) {
Storage::delete($product->image);
}
$path = $request->file('image')->store('images', 'public');
}
$product->update([
"name" => $request->name,
"type" => $request->type,
"price" => $request->price,
"image" => $path ?? $product->image
]);
return response()->json([
'status' => 'success',
'message' => 'The choosen product updated successfully',
'product' => $product,
]);
}
这个错误在 swagger
- 无法提取。可能的原因:对于CORS请求,CORS网络故障URL方案必须为“http”或“https”。*
Postman 中的此错误
"message": "The given data was invalid.",
"errors": {
"name": [
"The name field is required."
],
"type": [
"The type field is required."
],
"price": [
"The price field is required."
],
"image": [
"The image field is required."
]
}
这里我从数据库中删除元素
/**
* @OA\Delete(
* path="/api/product/{id}",
* tags={"Products"},
* summary="Show the choosen element",
* operationId="destroy",
* @OA\Parameter(
* name="id",
* in="path",
* description="Status values that needed to be considered for filter",
* required=true,
* explode=true,
* @OA\Schema(
* default="1",
* type="string",
* )
* ),
* @OA\Response(
* response=200,
* description="successful operation",
* ),
* security={{ "bearer": {} }}
* )
*
*/
public function destroy($id)
{
$product = Product::find($id);
$product->delete();
return response()->json([
'status' => 'success',
'message' => 'product deleted successfully',
'product' => $product,
]);
}
}
1条答案
按热度按时间zxlwwiss1#
根据一个 Postman 错误,它看起来像是无法从request.dd请求对象中获取字段(名称、类型...),并查看即将发生的情况。