swagger php将参数作为json传递

swagger php将参数作为json传递,php,swagger,swagger-ui,swagger-php,Php,Swagger,Swagger Ui,Swagger Php,所以我在php代码中有如下注释,所以基本上我试图生成我的api正在接受的以下请求 我有如下评论: /** * Login API * * *@SWG\Definition( * definition="login", * description="Enter your username", *) *@SWG\Definition( * definition="password", * type="string", * description="Enter your

所以我在php代码中有如下注释,所以基本上我试图生成我的api正在接受的以下请求

我有如下评论:

/**
* Login API
*
*

*@SWG\Definition(
*   definition="login",    
*   description="Enter your username",
*)

*@SWG\Definition(
*   definition="password",
*   type="string",
*   description="Enter your Password",
*)

* @SWG\Post(
* path="/user/login",
* description="Login API.",
* operationId="Login",
* produces={"application/json"},
* tags={"login"},
* consumes={"application/json"},

*@SWG\Parameter(
*          name="params",
*          in="body",
*          type="string",
*          default="params={""username"":""abc@abc.com"",""password"":""12345678""}",
*          description="Login Detail",
*          required=true,
*          @SWG\Schema(ref="#/definitions/login")
*),
*@SWG\Response(
*   response=200,
*   description="Token overview."
*),
*@SWG\Response(
*   response=401,
*   description="Unauthorized action.",
*),    
* )
*/
预期产量 实际产量 在Swagger ui中,当我尝试执行它时,它会显示错误:

TypeError:获取失败

我试过的
  • 将消耗更改为“多部分/表单数据”(相同错误)
  • 如果我将in=“body”改为in=“query”,那么它会工作,但我不能使用它。按要求在POST方法中传递参数
  • 可能不相关,但在控制台中我得到以下错误:
  • root injects.js:95 TypeError:e.get(…).entrySeq不是函数 默认情况下(curlify.js:23) t.value时(curl.jsx:17) 在t.render(root injects.js:93) 在u.(u renderValidatedComponent中没有自己的或上下文(ReactCompositeComponent.js:796) 在u.\u renderValidatedComponent(ReactCompositeComponent.js:819) 在u.\u UpdaterEndedComponent(ReactCompositeComponent.js:743) 在u._performComponentUpdate(ReactCompositeComponent.js:721) 在updateComponent上(ReactCompositeComponent.js:642) at u.receiveComponent(ReactCompositeComponent.js:544) 位于Object.receiveComponent(ReactReconciler.js:122)


    那么,我应该如何解决这个问题呢?

    中的
    更改为
    中的
    。瞧。

    从您的招摇过市参数中删除默认属性,而是在招摇过市模式中设置它们

    @SWG\Schema(
        @SWG\Property(property="username", type="string", example="abc@abc.com"),
        @SWG\Property(property="password", type="string", example="12345678")
    )
    

    否则,如果您希望使用swagger定义,请在定义中如上所述设置swagger属性。

    通过结合@Pusparaj和@delboy1978uk提供的答案来解决此问题

    基本上,我必须将
    in=“body”
    更改为
    in=“formData”

    之后,我必须更改我的评论,如下所示:

    /**
    * Login API
    *
    *
    
    *@SWG\Definition(
    *   definition="login",    
    *   description="Enter your username",
    *)
    
    *@SWG\Definition(
    *   definition="password",
    *   type="string",
    *   description="Enter your Password",
    *)
    
    * @SWG\Post(
    * path="/user/login",
    * description="Login API.",
    * operationId="Login",
    * produces={"application/json"},
    * tags={"login"},
    * consumes={"application/json"},
    
    *@SWG\Parameter(
    *          name="params",
    *          in="body",
    *          type="string",
    *          default="params={""username"":""abc@abc.com"",""password"":""12345678""}",
    *          description="Login Detail",
    *          required=true,
    *          @SWG\Schema(ref="#/definitions/login")
    *),
    *@SWG\Response(
    *   response=200,
    *   description="Token overview."
    *),
    *@SWG\Response(
    *   response=401,
    *   description="Unauthorized action.",
    *),    
    * )
    */
    
    早期的 更新
    它给出了类似“Code”:“Undocumented”和“Detail”:“TypeError:Failed to fetch”的错误。我能够解决它,但它显示为文本输入,有没有办法将其转换为文本区域?
    @SWG\Schema(
        @SWG\Property(property="username", type="string", example="abc@abc.com"),
        @SWG\Property(property="password", type="string", example="12345678")
    )
    
    *@SWG\Parameter(
    *          name="params",
    *          in="body",
    *          type="string",
    *          default="params={""username"":""abc@abc.com"",""password"":""12345678""}",
    *          description="Login Detail",
    *          required=true,
    *          @SWG\Schema(ref="#/definitions/login")
    *),
    
    @SWG\Parameter(
        name="params",
        in="formData",
        type="string",
        default="params={""username"":""abc@abc.com"",""password"":""12345678""}",
        description="Login Detail",
        required=true,
        @SWG\Schema(
            @SWG\Property(property="username", type="string"),
            @SWG\Property(property="password", type="string")
        )
    ),