Итак, сначала вам нужно создать новый контроллер с помощью команды php artisan make:controller
. В моем случае я называю это ArrayApiController
(я уверен, что вы найдете лучшее имя).
Итак, моя команда выглядит так:
php artisan make:controller ArrayApiController
Теперь выиметь новый контроллер для обработки вашего входящего запроса. После этого нам нужно создать новый маршрут для перенаправления запросов на этот новый контроллер.
Для этого мы добавляем новую запись в файл api.php
в routes/api.php
. Я предлагаю добавить относящиеся к API маршруты в api.php
, чтобы сохранить его в чистоте и порядке.
Поэтому добавьте эту строку в файл routes/api.php
:
Route::post('array', 'ArrayApiController@post');
Вы можете изменить ::post
на ваш предпочитаемый метод http и URL (array
в моем случае) на все, что вы хотите ( Вот все доступные методы http ).
Так что запросы на /api/array
будуттеперь перейдем к функции post
в ArrayApiController
, который мы создали ранее.
Итак, теперь создайте новую функцию с именем post
в новом контроллере (ArrayApiController
в моем случае):
public function post(Request $request)
{
//
}
Теперь вы можете получить отправленные данные, используя $request->get(NAME_OF_THE_DATA)
. В следующем фрагменте кода вы можете видеть, что я взял products
в качестве названия переменных продуктов, которые я отправляю почтальону.
public function post(Request $request)
{
// get all products
$products = $request->get('products');
}
Теперь вы можете перебирать свои продукты и делать все, что захотите (Вв моем случае это просто разоблачить, но вы также можете записать эти переменные в БД):
public function post(Request $request)
{
// get all products
$products = $request->get('products');
// loop through all products
foreach ($products as $product) {
echo $product['product_id'];
echo $product['product_amount'];
}
}
Теперь перейдите к почтальону и создайте новый запрос. Измените метод http на введенный вами метод в файле api.php
(в моем случае я добавил Route::post(..
в файл api.php
, поэтому мне нужно создать запрос POST
). Затем добавьте новый заголовок с именем Content-Type
и установите его на application-json
. Теперь в качестве тела вы можете отправить свой массив как json:
{
// You can call the variable how you want
"products": [
{
"product_id": 1,
"product_ammount": 500
},
{
"product_id": 2,
"product_ammount": 1500
}
]
}
Убедитесь, что тип содержимого вашего тела - json.
Вместо products
вы можете взять то, что вы хотите, ноон должен быть таким же, как в ArrayApiController
в указанном выражении $request->get()
.
Если вы хотите добавить аутентификацию в API или получить дополнительную информацию об этом, вот хорошая ссылка -> BuildRESTful API в Laravel 5.8 Пример .
Теперь, как вам нужно сделать запрос почтальона: