Я начинающий ларавий. Я создаю 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")
Я хотел бы спросить, что-то вроде этого рекомендуется. если нет, то какой способ лучше реализовать
Вы можете создать новую группу маршрутов с префиксом, подобным этому:
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. Если у вас есть вопросы, напишите их здесь
Предположим, что несколько упомянутых вами платформ можно сгруппировать в качестве веб-сайта и мобильных приложений.
Рекомендация заключается в их создании отдельно: создайте веб-сайт так, как вы бы делали традиционно, и еще один api для мобильных приложений.
Причина проста: для веб-сайта вы можете использовать сеансы для хранения состояния входа в систему, но для мобильного приложения вам нужно использовать что-то вроде json web token для проверки пользователя. Это будет грязно и трудно поддерживать, если они разделяют маршруты и действия.
Конечно, есть исключения. Если вы создали веб-сайт как веб-приложение с использованием некоторой инфраструктуры JS, такой как AngularJS, вы можете просто создать api и обслуживать их всех.