Swagger.php:如何更改POST请求标头内容类型

时间:2018-01-24 00:43:37

标签: laravel swagger swagger-ui swagger-2.0 swagger-php

我使用lib:darkaonline/l5-swagger (^5.5)(包含swagger-php + swagger-ui),我需要在POST请求中更改标题Content-Type以上传文件(在Laravel Input :: file中读取它) '照片'))。我读到我应该将consumesproduces参数添加到我的招摇 - 这就是我所拥有的:

/**
 *
 * Create Building Photo
 *
 * @SWG\Post(
 *     path="/api/v1/buildings/{buildingId}/photo",
 *     security={{"oauth2": {"*"}}},
 *     tags={"building"},
 *     consumes={"text/plain", "application/json"},
 *     produces={"text/plain", "application/json"},
 *     description="Update building",
 *     @SWG\Parameter(
 *         name="buildingId",
 *         in="path",
 *         description="Building id",
 *         required=true,
 *         type="number",
 *     ),
 *     @SWG\Parameter(
 *          name="photo",
 *          in="formData",
 *          required=true,
 *          description="Building photo",
 *          type="file",
 *     ),
 *     @SWG\Response( response=200, description="ok"),
 *     @SWG\Response( response=404, description="Building not found"),
 * )
 *
 */

但是在请求Content-typeAccept中,我总是得到application/json,laravel无法读取上传的文件(当我使用swagger-ui生成请求时)。我应该如何改变上面的招摇以允许laravel读取输入::文件('照片')形成由swagger-ui生成的POST请求?

2 个答案:

答案 0 :(得分:1)

这是解决方案:

 *     consumes={"multipart/form-data"},
 *     produces={"text/plain, application/json"},

:)

答案 1 :(得分:0)

请在此处找到解决方案。

您应遵循此指南,在Laravel中使用Passport身份验证设置Swagger等等

https://github.com/DarkaOnLine/L5-Swagger

此处列出了您在实施过程中可能遇到的一些问题。

https://github.com/DarkaOnLine/L5-Swagger/issues/57