Отображение ответа cURL JSON с Dingo API (Laravel) - PullRequest
0 голосов
/ 06 ноября 2019

Я отправляю запросы через cURL на внешний веб-сервис и получаю ответ в формате JSON. Примерно так:

public function store(Request $request)
{
    $loggedInUser = app('Dingo\Api\Auth\Auth')->user();
    if (!$loggedInUser instanceof User) {
        $this->response->errorUnauthorized();
    }

    $data = $request->all();

    $url = env('WEBSERVICE_URL');
    $payload = json_encode(['n' => $data['n']]);

    $auth = 'Authorization: ' . env('API_KEY');

    $headers = [
        'Content-Type:application/json',
        $auth
    ];

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($curl);
    curl_close($curl);

    return $result;
}

Проблема в том, что ответ функции такой:

{
    "code": 200,
    "status": "success",
    "data": "{\"message\":\"n saved successfully!\"}"
}

А не так (json, который я получил от веб-службы)

{"message": "n saved successfully!"}

Я на самом деле не эксперт по Dingo API, но могу представить, что это, вероятно, связано с неким форматом ответа по умолчанию, который Dingo применяет к возвращаемым значениям в функциях.

В любом случае, в этом случае я хотел бы вернуть второй ответ, упомянутый выше. Есть ли способ отключить формат ответа по умолчанию, который Динго применяет в особых случаях? Или вы думаете, что это вызвано чем-то другим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...