Загрузка изображения с помощью Swagger API - PullRequest
0 голосов
/ 31 марта 2020

Я разрабатываю API, используя Laravel 7, и я использую Swagger для документации API. Моя проблема в том, что я хочу загружать изображения с помощью Swagger API, но при печати изображений на нем отображается только [объектный файл], поэтому я не могу загрузить их в папку publi c. Метод моего магазина

/**
 * Store a newly created Products.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 *  
 * @OA\Post(
 *     path="/api/products",
 *     tags={"Product"},
 *     @OA\Response(response="200", description="Adding a new Product."),
 * 
 *    @OA\Parameter(
 *     name="name[]",
 *     in="query",
 *     description="Product Name",
 *     required=true,
 *     @OA\Schema(type="array", @OA\Items(type="string")),
 *   ),    
 *    @OA\Parameter(
 *     name="images[]",
 *     in="query",
 *     description="Product Images",
 *     required=true,
 *    @OA\Schema(type="array", @OA\Items(type="file")),
 *   ), 
 *   * )
 * )
 *
 */
public function upload(Request $request)
{

    $request->validate([
        "name" => "required",
        "images" => "required",
    ]);

    $images = $request->images;

    $product = Product::create([]);


    if(! is_dir(public_path("/products")) ){
        mkdir(public_path("/products"), 0777);
    }
    $id = $product->id;    
    $imageCollection = Collection::wrap($images);
    $imageCollection->each(function($image) use ($id){
        $basename = Str::random();
        $original = $basename . "." . $image->getClientOriginalExtension();
        $image->move(public_path("/products"), $original);

        ProductMedia::create([
            "product_id" => $id,
            "image" => "/products/".$original,
        ]);

    });

    return Product::where("id", $product->id)->with("productMedia")->get();

}

Как добавить изображения через Swagger API?

1 Ответ

0 голосов
/ 01 апреля 2020

Похоже, вы используете L5 Swagger Package . Возможно, вам придется выяснить, как добавить аннотацию, чтобы разрешить multipart / form-data . Не уверен, как настроить это через Пакет, но вот еще некоторая информация из Документация по загрузке файлов Swagger

...