2

我正在尝试repo使用 Github API 在我自己的问题中创建一个问题,但由于某种原因,它一直给我一个错误

Route::post('/issue/create/{repo}',function ($_repo){

    $client = new Client([
        // Base URI is used with relative requests
        'base_uri' => 'https://api.github.com',
        // You can set any number of default request options.
//        'timeout'  => 2.0,
    ]);
    $url = '/repos/rehan-dckap/'.$_repo.'/issues';
    // Set various headers on a request
    $response = $client->request('POST', $url, [
        'query' => [
            'title' => 'IssueCreation',
            'body' => 'ThPI',
            'assignee' => '',
            'milestone' => 1,
            'labels' => [],
            'assignees' => []
        ],
        'headers' => [
            'Authorization'     => 'Bearer TOKENTOKENTOKENTOKEN'
        ]
    ]);
    return  response($response->getBody());
});

错误

客户端错误:POST https://api.github.com/repos/rehan-dckap/qatouch-api-docs/issues?title=IssueCreation&body=ThPI&assignee=&milestone=1导致422 Unprocessable Entity响应:{“message”:“无效请求。\n\n对于 'links/0/schema',nil 不是对象。”,“documentation_url”:“ https://develo(截断。 ..)

有人可以指导我吗?

4

2 回答 2

0

我花了相当多的时间来尝试了解这里的问题,但是如果不运行代码本身,它会有点棘手。你能提供一个带有该代码的在线沙箱,以便我可以使用它吗?我很高兴自己提供令牌。这里有两个主要内容。

首先,422通常意味着解析有效负载时出错。查看您的有效负载和错误消息,我将尝试首先删除以数组开头的所有非强制性字段。如果我们查看错误消息,它会说Nil is a not an object. 我最好的猜测是数组或assignee字符串的问题。

总的来说,我在这些情况下的建议是减少对裸函数的 API 调用。最小化并尝试隔离问题。我会尽可能使用他们在 API 页面上发布的 GitHub 示例,甚至删除它,assignee因为它已被弃用:

{
  "title": "Found a bug",
  "body": "I'm having a problem with this.",
  "milestone": 1,
  "labels": [
    "bug"
  ]
}

希望这可以帮助。

于 2019-03-05T13:18:46.883 回答
0

在这里你可以检查错误代码:https ://developer.github.com/v3/

Sending invalid fields will result in a 422 Unprocessable Entity response.

HTTP/1.1 422 Unprocessable Entity
Content-Length: 149

{
  "message": "Validation Failed",
  "errors": [
    {
      "resource": "Issue",
      "field": "title",
      "code": "missing_field"
    }
  ]
}
于 2020-06-25T10:52:44.290 回答