За последние 24 часа нас посетили 22896 программистов и 1240 роботов. Сейчас ищут 772 программиста ...

Ресурсный контроллер не передает данные по api

Тема в разделе "Laravel", создана пользователем markelovdn, 25 авг 2022.

  1. markelovdn

    markelovdn Новичок

    С нами с:
    5 июн 2021
    Сообщения:
    41
    Симпатии:
    0
    Все здравствуйте!
    Создал ресурсный котроллер, при попытке получить данные в postman выводит html главного шаблона.
    Пробовал передавать заголовки типа Accept - application/json, Content-type - application/json не помогает.
    Маршрут не отрабатывает только на GET запросах. POST запросы возвращают то что нужно. В файле с маршрутами единственный маршрут:
    ../routes/api.php
    PHP:
    1. Route::resource('competitions', CompetitionsController::class);
    Сам метод контроллера должен возвратить коллекцию:
    PHP:
    1. <?php
    2.  
    3. namespace App\Http\Controllers\Api\V1;
    4.  
    5. use App\Http\Controllers\Controller;
    6. use App\Models\Competition;
    7. use Illuminate\Http\Request;
    8.  
    9. class CompetitionsController extends Controller
    10. {
    11.     /**
    12.      * Display a listing of the resource.
    13.      *
    14.      * @return Competition[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Http\Response
    15.      */
    16.     public function index()
    17.     {
    18.         return Competition::all();
    19.     }
    Пробовал возвращать в методе index просто данные результат не менялся, грузился только html, данные не передавались.
    Применял команду php7.4 artisan route:clear

    Работаю на удаленном серваке.
     
  2. Batman

    Batman Активный пользователь

    С нами с:
    9 окт 2006
    Сообщения:
    72
    Симпатии:
    2
  3. markelovdn

    markelovdn Новичок

    С нами с:
    5 июн 2021
    Сообщения:
    41
    Симпатии:
    0
    Попробовал пример из документации все равно не работает
    PHP:
    1.     public function index()
    2.     {
    3. //        $competitions = Competition::get();
    4. //        return response()->json($competitions);
    5.  
    6.         return response()->json([
    7.             'name' => 'Abigail',
    8.             'state' => 'CA',
    9.         ]);
    10.     }
    upload_2022-8-25_17-1-31.png
     
  4. Batman

    Batman Активный пользователь

    С нами с:
    9 окт 2006
    Сообщения:
    72
    Симпатии:
    2
  5. markelovdn

    markelovdn Новичок

    С нами с:
    5 июн 2021
    Сообщения:
    41
    Симпатии:
    0
    Вроде все как в статье сделал, но результат тот же
    Уже пробую просто в маршруте передать

    PHP:
    1. Route::get('/', function () {
    2.     return response()->json('OK');
    3. });
    в postman пробую так http://compreg.j96108q7.beget.tech/api
    ничего не меняется
    --- Добавлено ---
    Осталось попробовать на локалке все запустить, если там будет все нормально то тогда вопрос к хостингу, точнее к серверу на хостинге
     
  6. markelovdn

    markelovdn Новичок

    С нами с:
    5 июн 2021
    Сообщения:
    41
    Симпатии:
    0
    Попробовал на другом удаленном сервере, там все работает. Основное отличие в том что в той версии нет vue и vue-router если конечно они влияют на это, попробую синхронизировать версии и тогда уже точно станет ясно в чем дело.
     
  7. markelovdn

    markelovdn Новичок

    С нами с:
    5 июн 2021
    Сообщения:
    41
    Симпатии:
    0
    Скопировал все файлы с одного сервера на другой, работать перестало. Значит дело во vue и vue-router. Теперь стало еще тяжелее.
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    vue ни при чём, совершенно. А вот какие-нибудь htaccess могут.

    У вас хоть понимание есть, что такое фронт на vue? Это файлики валяются на сервере, сервер их браузеру плюёт. А laravel.mix используется, чтоб файлики собрать и куда надо положить

    Ну если конечно серверный рендеринг через node js не настроен, но чтой-то мне кажется, что не ваш случай
     
  9. markelovdn

    markelovdn Новичок

    С нами с:
    5 июн 2021
    Сообщения:
    41
    Симпатии:
    0
    Теперь уже понял, что не причем, создал новый проект и аккуратно перенес все на локалку, попутно проверяя работоспособность api. Сейчас все работает.