#php #laravel
#php #laravel
Вопрос:
Я следую этому руководству и использую postman
для тестирования api
. Все работает, как ожидалось в localhost
. но когда я загружаю на рабочий сервер, каким-то образом данные api
запроса отфильтровываются.
Я следую инструкции по установке passport
и всем этим настройкам в различных файлах. затем я php artisan migrate
на рабочем сервере, после этого php artisan passport:install
, затем сообщение было успешным:
Encryption keys generated successfully.
Personal access client created successfully.
Client ID: 1
Client secret: <some long strings>
Password grant client created successfully.
Client ID: 2
Client secret: <some long strings>
У меня есть тестовая функция:
ResidentsController.php:
public function testing(Request $request){
return $request->all();
// return ['test'=>'success'];
}
и маршрут:
api.php:
Route::post('/resident/test','ResidentsController@testing');
Итак, я использую postman
для вызова:
POST : http://examplehost/api/resident/test/
данными:
{"name":"user001"}
и заголовок:
Content-Type: application/json //<-- which enough for localhost
но данные возвращаются:
[] ///<--- I am expecting {"name":"user001"}
и я тестирую с заголовком:
[
Content-Type: application/json,
Authorization: {{'bearer'.$accessToken}} ///<-- which the direction from tutorial
]
все еще возвращает то же самое:
[]
Я не уверен, какую часть я пропустил. Как я могу это решить?
Ответ №1:
В Postman щелкните по телу, выберите raw и выберите JSON (application / json) из выпадающего списка
В теле вставьте свой JSON
{"name":"user001"}
В вашем методе тестирования
if ( $request->isJson() ) {
$json = json_decode(trim($request->getContent()),true);
return response()->json($json);
}