【问题标题】:swagger php client int[] type/syntax errorswagger php客户端int []类型/语法错误
【发布时间】:2018-11-29 13:24:01
【问题描述】:

我正在使用使用 swagger codegen 2.3.1 生成的 php 客户端。也试过2.4.0_snapshot,还是一样的错误。 用于生成的 swagger.json 可以找到here

我正在尝试使用一个生成的 post 函数,它有一个 int[] 类型的参数。

根据生成的文档,它应该像这样使用

$apiInstance = new Swagger\Client\Api\UniverseApi();
$ids = array(new \Swagger\Client\Model\int[]());
$datasource = "tranquility";
$result = $apiInstance->postUniverseNames($ids, $datasource);

如果我这样定义$ids,它会给我一个syntax error, unexpected '[', expecting ')'

如果我将$ids 设为一个数组,例如:

array(2) {
  [0]=>
  int(96305152)
  [1]=>
  int(96075776)
}

抛出异常:

异常:资源类型无效:数组。

【问题讨论】:

    标签: php arrays swagger


    【解决方案1】:

    你试过$ids = array(new \Swagger\Client\Model\int());吗?

    【讨论】:

    • 导致uncaught error: class 'swagger\\client\\model\\int' 未找到
    • 还要检查 new 后不带反斜杠
    • 同样的错误。我也没有看到大摇大摆地在任何地方生成一个 int 类
    【解决方案2】:

    原来这是一个大问题,生成的客户端没有任何问题。 类似于this solution, 只需将数组编码为 json:

    $ids = json_encode(array(new \Swagger\Client\Model\int[]()));
    

    $result = $apiInstance->postUniverseNames(json_encode($ids), $datasource);
    

    【讨论】:

      猜你喜欢
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 2023-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      相关资源
      最近更新 更多