Tengo las siguientes líneas en mi routes/api.php
Route::middleware('api')->get('/posts', function (Request $request) { Route::resource('posts','ApiControllers\PostsApiController'); }); Cuando presiono http://localhost:8000/api/posts , vuelve en blanco, pero cuando muevo la ruta anterior a route routes/web.php así:
Route::group(['prefix' => 'api/v1'],function(){ Route::resource('posts','ApiControllers\PostsApiController'); });funciona.
Como recordatorio, he borrado el archivo de caché de rutas con php artisan route:clear y mi lista de rutas viene con php artisan route:list cuando mi routes/web.php está vacío y routes/api.php tiene la ruta anterior:
| Dominio | Método | URI | Nombre | Acción | software intermedio |
|---|---|---|---|---|---|
| OBTENER|CABEZA | api/publicaciones | Cierre | API |
Tenga en cuenta que con la parte de rutas web, la lista viene bien y funciona bien.
¿Qué estoy haciendo mal aquí?
No use la api de middleware y vea el siguiente ejemplo de ruta para rutas API
Ejemplo 1 (en tu api.php)
Route::get('test',function(){ return response([1,2,3,4],200); });visita esta ruta como
localhost/api/testEjemplo 2 (si desea autenticación api, autenticación basada en token usando pasaporte laravel)
Route::get('user', function (Request $request) { ///// controller })->middleware('auth:api'); Puede realizar una solicitud de obtención para esta ruta, pero debe pasar el token de acceso porque se ha utilizado el middleware auth:api .
Nota: vea /app/http/kernel.php y puede encontrar el
protected $routeMiddleware = [ //available route middlewares ] No debe haber ese tipo de middleware (api) en este archivo (kernel.php) para rutas a menos que cree uno, por eso no puede usar middleware como api .
Aquí, cómo estoy creando API REST (api.php)
//All routes goes outside of this route group which does not require authentication Route::get('test',function(){ return response([1,2,3,4],200); }); //following Which require authentication ................ Route::group(['prefix' => 'v1', 'middleware' => 'auth:api'], function(){ Route::get('user-list',"Api\ApiController@getUserList"); Route::post('send-fax', [ 'uses'=>'api\ApiController@sendFax', 'as'=>'send-fax' ]); Route::post('user/change-password', [ 'uses'=>'api\ApiController@changePassword', 'as'=>'user/change-password' ]); });