Создание API в Laravel

-1

Я начинающий ларавий. Я создаю PHP-сервер, используя laravel, который будет обслуживать несколько платформ. Я хочу сделать api, что могут использовать несколько платформ. Это то, о чем я думаю:

my api можно получить следующим образом: URL.com/api/v1/login (это отвечает в JSON)

и, если это веб-версия, вход в систему можно получить из URL.com/login Это должно отображать форму, которая отправит запрос AJAX

URL.com/api/v1/login

Я думаю о создании для этого разных маршрутов. что-то вроде:

routes::post(api/v1/login,"whatever controller")

а также

routes::get(login,"login_controller_which_will_send_ajax_requests_to the_above_controller")

Я хотел бы спросить, что-то вроде этого рекомендуется. если нет, то какой способ лучше реализовать

  • 0
    Не уверен насчет "login_controller_which_will_send_ajax_requests_to_above_controller", поскольку контроллер никогда не отправит запрос ajax. Это javascript в представлении, отображаемом контроллером, делает работу.
  • 0
    Я прошу прощения. Я имел в виду. Контроллер входа в систему, который будет вызывать представление, которое будет выполнять запрос ajax
Показать ещё 3 комментария
Теги:

2 ответа

0

Вы можете создать новую группу маршрутов с префиксом, подобным этому:

Route::group(['prefix' => 'api/v1'],function(){

Route::resource('name', 'Controller'); //resource controller
});

в контроллере инициализируйте конструктор:

public function __construct()
{
    $this->middleware('auth.basic');
}

Используя этот, пользователь сможет получить доступ ко всем методам отсюда (индекс, хранить...) только после того, как они отправят имя пользователя и передадут в качестве параметров.

Если вы имеете в виду, что вам нужен правильный экран входа в систему для мобильного устройства, создайте новый новый метод почты в контроллере, где вы получите имя пользователя и хэш пароля, а в случае совпадения имени пользователя и пароля с базой данных верните ответ HTTP 200, еще 403 (запрещен). Вам не нужны запросы AJAX здесь

Кроме того, перед запуском проекта, использующего определенный API, проверьте все, используя POSTMAN (все методы get, post, put), а также проверьте, работает ли аутентификация, или если пользователь, не зарегистрированный в системе, может получать/отправлять данные с помощью вашего API. Если у вас есть вопросы, напишите их здесь

0

Предположим, что несколько упомянутых вами платформ можно сгруппировать в качестве веб-сайта и мобильных приложений.

Рекомендация заключается в их создании отдельно: создайте веб-сайт так, как вы бы делали традиционно, и еще один api для мобильных приложений.

Причина проста: для веб-сайта вы можете использовать сеансы для хранения состояния входа в систему, но для мобильного приложения вам нужно использовать что-то вроде json web token для проверки пользователя. Это будет грязно и трудно поддерживать, если они разделяют маршруты и действия.

Конечно, есть исключения. Если вы создали веб-сайт как веб-приложение с использованием некоторой инфраструктуры JS, такой как AngularJS, вы можете просто создать api и обслуживать их всех.

  • 0
    Предположим, что сам API-интерфейс обрабатывает токен (для мобильных устройств) и сеанс (для веб-сайтов), это будет работать? Я спрашиваю, если эта техника идеально подходит для Laravel.
  • 0
    Затем вам нужно также рассмотреть токен csrf, используемый в сети, и, возможно, согласование содержимого для API и т. Д., Что делает действие контроллера очень тяжелым и трудным для абстрагирования. Кроме того, проверка мобильного токена и веб-сеанса для каждого запроса замедляет скорость. Таким образом, метод является работоспособным, но не может быть идеальным для более широкого применения.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню