Как получить одинарную цитату JSON в Laravel - PullRequest
0 голосов
/ 23 мая 2018

Я пишу API для использования данных из другого стороннего приложения (RapidPro).К сожалению, стороннее приложение отправляет свой JSon, заключенный в одинарные кавычки, которые Laravel, похоже, не понимает, когда я возвращаю объект $request, я получаю пустой массив [].

Есть ли способ, которым я могупринять JSon как есть с одинарными кавычками, так как я не могу изменить сторонний API?

JSon для анализа такой:

{
    'contact': {
        'uuid': 'e65ef92b-24ce-459b-a8fd-beb042330eb0',
        'name': 'UserName',
        'urn': 'tel: +12000000000'
    },
    'flow': {
        'name': 'MyFlow',
        'uuid': 'da5d6c42-a818-481b-b91c-e9622dafe8be'
    },
    'path': [],
    'results': {},
    'run': {
        'uuid': '2a2f709f-d114-413c-a865-d960cea73981',
        'created_on': '2018-05-23T19: 06: 03.308191+00: 00'
    },
    'input': {
        'urn': 'tel: +12000000100',
        'text': 'What I wanna say',
        'attachments': []
    }
}

Я использую следующий маршрут при полученииВызов API, он работает и передает его в контроллер:

Route::post('sms', 'UserController@sms')->name('sms.store');

Контроллер SMS для этой демонстрации давайте просто запишем его в локальный файл и отправим обратно результаты для просмотра в Insomnia, где находится демонстрационный вызовmade:

public function sms(Request $request)
    {
        Storage::put('sms.txt', $request);
        return $request;

    }

Когда я отправляю JSON через Insomnia на свой сервер, я получаю пустой ответ, когда использую двойные кавычки;опубликованный JSON красиво отбрасывается.

1 Ответ

0 голосов
/ 05 июня 2018

Оказывается, в отладчике RapidPro jSON показывается в одинарных кавычках, но в реальном POST он использует двойные кавычки.То, что я ошибался, было AUTH.Мне пришлось включить заголовок для базовой проверки подлинности Laravel.

...