如何在swagger api中发布数组

时间:2017-04-28 05:33:14

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

我已经整合了swagger php api outr rest-api所有服务工作正常,但我在api中的post json数组中面临问题。这不行,请你帮忙。

这里我的招摇api代码

/**
 * @SWG\Post(path="/createbetsnap/get_all_game_data",
 *   tags={"Create Betsnaps Section"},
 *   summary="This function used to get selected tournament schedule date and other master data like size, prize structure and entry fee",
 *   description="",
 *   operationId="get_all_game_data",
 *   produces={"application/json"},
 *   consumes={"application/json"},
 *   @SWG\Parameter(
 *     name="Login_Session_Key",
 *     in="header",
 *     description="The Login Session Key of logged in user.",
 *     required=true,
 *     type="string"
 *   ),
 *   @SWG\Parameter(
 *     name="game_tournament",
 *     in="formData",
 *     description="The game tournament ids array field.",
 *     required=true,
 *     type="array",
 *     @SWG\Items(type="string")
 *   ),
 *   @SWG\Response(response=200, description="success message with data array"),
 *   @SWG\Response(response=500, description="Invalid username/password supplied")
 * )
 */

我在api之前添加的关于swagger的完整代码。

我想发布像

这样的game_tournament字段
{"game_tournament":["18","8"]}

但是来自以下格式的swagger-ui小组帖子

game_tournament=8,18

你可以帮我解释一下我的代码有什么问题,我需要改变什么。

先谢谢。

3 个答案:

答案 0 :(得分:1)

要POST JSON数据,您需要使用in: body参数并使用@SWG\Schema指定数据类型:

 *   @SWG\Parameter(
 *     name="game_tournament",
 *     in="body",
 *     description="The game tournament ids array field.",
 *     required=true,
 *     @SWG\Schema(
 *       type="array",
 *       @SWG\Items(type="string")
 *     )
 *   ),

答案 1 :(得分:0)

使用例如面向Laravel / Lumen的Swagger Lume软件包,您可以通过以下方式获得您的要求:

 *     @OA\Parameter(
 *         name="game_tournament[]",
 *         in="query",
 *         description="The game tournament ids array field",
 *         required=true,
 *         @OA\Schema(type="array", @OA\Items(type="string")),
 *     ),

答案 2 :(得分:-1)

只需尝试:

  *   @SWG\Parameter(
  *       name="game_tournament[]",
  *       type="array",
  *       items="string",
  *       collectionFormat="multi",
  *       required=true,
  *       in="query",
  *   ),