问题描述
我正在构建 Laravel,并将所有 API 控制器方法的符号从@SWG 更新到@OA。当我在创建方法的 swagger-ui 中点击“尝试一下”时,我能够让它显示(并接受)一个可编辑的参数和值数组(后者是我编码的示例),但是我更愿意获得给定参数的一种形式,而不是在查询中发送。通过添加参数并将“in”参数设置为“body”,我能够在旧版本中做到这一点,但文档说我现在必须使用 requestBody。对结果不太满意...功能正常,但不是最佳的。
以下是我当前使用的 requestBody 示例:
/**
*
* @OA\RequestBody(
* request="Answer",* description="Answer object that needs to be added.",* required=true,* @OA\JsonContent(ref="#/components/schemas/Answer")
* )
*/
我怀疑我需要用@mediaType 做一些事情,但是当我尝试使用参数列表时,它没有给我任何东西 8(
我错过了什么?
解决方法
我将 requestBody 与响应混为一谈……我想我需要发送 json 才能返回 json。不,大声笑,只需要使用表单数据 mediaType 发送它。
这是我最终得到的,以防它对某人有所帮助:
/**
*
* @OA\RequestBody(
* request="Answer",* description="Answer object that needs to be added.",* required=true,* @OA\MediaType(
* mediaType="multipart/form-data",* @OA\Schema(ref="#/components/schemas/Answer")
* )
* )
*/