Api: Dingo API occur error when call normal route

Created on 8 Aug 2016  路  15Comments  路  Source: dingo/api

I have installed laravel 5.1.,5.0. and 5.2.*. , dingo api 1.0.x@dev and I have following configuration as per git laravel dingo api.

but I have getting issue once run dingo.

{
message: "404 Not Found",
status_code: 404,
debug: {
line: 161,
file: "/var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
class: "Symfony\Component\HttpKernel\Exception\NotFoundHttpException",
trace: [
"#0 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(750): Illuminate\Routing\RouteCollection->match(Object(Dingo\Api\Http\Request))",
"#1 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(659): Illuminate\Routing\Router->findRoute(Object(Dingo\Api\Http\Request))",
"#2 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(635): Illuminate\Routing\Router->dispatchToRoute(Object(Dingo\Api\Http\Request))",
"#3 /var/www/html/karconnect_new_api/vendor/dingo/api/src/Routing/Adapter/Laravel.php(82): Illuminate\Routing\Router->dispatch(Object(Dingo\Api\Http\Request))",
"#4 /var/www/html/karconnect_new_api/vendor/dingo/api/src/Routing/Router.php(574): Dingo\Api\Routing\Adapter\Laravel->dispatch(Object(Dingo\Api\Http\Request), 'v1')",
"#5 /var/www/html/karconnect_new_api/vendor/dingo/api/src/Http/Middleware/Request.php(123): Dingo\Api\Routing\Router->dispatch(Object(Dingo\Api\Http\Request))",
"#6 [internal function]: Dingo\Api\Http\Middleware\Request->Dingo\Api\Http\Middleware{closure}(Object(Dingo\Api\Http\Request))",
"#7 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(139): call_user_func(Object(Closure), Object(Dingo\Api\Http\Request))",
"#8 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Dingo\Api\Http\Request))",
"#9 [internal function]: Illuminate\Foundation\Http\MiddlewareVerifyCsrfToken->handle(Object(Dingo\Api\Http\Request), Object(Closure))",
"#10 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
"#11 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Dingo\Api\Http\Request))",
"#12 [internal function]: IlluminateView\Middleware\ShareErrorsFromSession->handle(Object(Dingo\Api\Http\Request), Object(Closure))",
"#13 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
"#14 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Dingo\Api\Http\Request))",
"#15 [internal function]: Illuminate\Session\Middleware\StartSession->handle(Object(Dingo\Api\Http\Request), Object(Closure))",
"#16 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
"#17 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Dingo\Api\Http\Request))",
"#18 [internal function]: Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Dingo\Api\Http\Request), Object(Closure))",
"#19 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
"#20 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(59): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Dingo\Api\Http\Request))",
"#21 [internal function]: Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Dingo\Api\Http\Request), Object(Closure))",
"#22 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
"#23 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(44): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Dingo\Api\Http\Request))",
"#24 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Dingo\Api\Http\Request), Object(Closure))",
"#25 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
"#26 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Dingo\Api\Http\Request))",
"#27 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Dingo\Api\Http\Request))",
"#28 /var/www/html/karconnect_new_api/vendor/dingo/api/src/Http/Middleware/Request.php(124): Illuminate\Pipeline\Pipeline->then(Object(Closure))",
"#29 /var/www/html/karconnect_new_api/vendor/dingo/api/src/Http/Middleware/Request.php(100): Dingo\Api\Http\Middleware\Request->sendRequestThroughRouter(Object(Dingo\Api\Http\Request))",
"#30 [internal function]: Dingo\Api\Http\Middleware\Request->handle(Object(Illuminate\Http\Request), Object(Closure))",
"#31 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
"#32 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))",
"#33 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))",
"#34 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(122): Illuminate\Pipeline\Pipeline->then(Object(Closure))",
"#35 /var/www/html/karconnect_new_api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(87): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))",
"#36 /var/www/html/karconnect_new_api/index.php(54): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))",
"#37 {main}"
]
}
}

please anyone can help for same issue

I have follow following steps :

Sure,

I have follow instruction from https://github.com/dingo/api/wiki/Installation.

Step 1 : setting 'API_PREFIX=api' in .env file

Step 2 : configuration in api.php is following :

      'standardsTree' => env('API_STANDARDS_TREE', 'vnd'),
      'subtype' => env('API_SUBTYPE', ''),
      'version' => env('API_VERSION', 'v1'),
      'prefix' => env('API_PREFIX', 'api'),
      'domain' => env('API_DOMAIN', 'http://localhost/api'),
      'name' => env('API_NAME', null),
      'conditionalRequest' => env('API_CONDITIONAL_REQUEST', true),
      'strict' => env('API_STRICT', false),
      'debug' => env('API_DEBUG', true),

Step 3: I have written code in route.php file

         $api = app('Dingo\Api\Routing\Router');
           $api->version('v1', function ($api) {
                     $api->get('/users', function(){
                         return 'tsdasd';
                    });
            });

Can you please help for same, where I'm wrong ?

Most helpful comment

may you try php artisan serve as local server, then access url would be like http://localhost:8000/api/v1/users

All 15 comments

try 1)
you can use cli php artisan api:routes to list your routes entry, use HOST + URI.
I assume entry become 'http://localhost/api/api/users' with your api.php config.

try 2)
'prefix' => env('API_PREFIX', 'api/v1'),
'domain' => env('API_DOMAIN', null),
with entry 'http://localhost/api/v1/users'

yes exactly, once I execute php artisan api.routes display route but when I try to run url it's display exception which I have mention in question, let me try again If I have written something else. Thanks for suggestion once again

Not working, please see attachment snapshot
screenshot from 2016-08-08 15 29 26

root folder name is api and url would be like this http://localhost/api/api/v1/users

may you try php artisan serve as local server, then access url would be like http://localhost:8000/api/v1/users

Thank you so much @rk87. It's speech less. Working fine, but once I live it. follow same ?

Once I go for live then what command should be there for forever start service ?

I suggest expose your Laravel public path (/var/www/html/api/public/) for your live production http://example.com , url would be http://example.com/api/v1/users.
This require your httpd server (apache / nginx) with DocumentRoot configuration.
This is more secure and suggest to do (list in Laravel installation docs).

Otherwise, you still can access http://example.com/api/public/api/v1/users without config the httpd server.

@rk87 Can you suggest me where to configure httpd server and how ?

Can you tell me why php artisan:serve as local server ? what reason behind ?

It's working for me but once I call controller like following :

$api = app('Dingo\Api\Routing\Router');
  $api->version('v1', function ($api) {
      $api->get('users','XyzController@index');
  });

url : http://localhost/api/v1/users

I appear following errors :

{

    "message": "Class XyzController does not exist",
    "code": -1,
    "status_code": 500,
    "debug": {
        "line": 741,
        "file": "/var/www/html/api/vendor/laravel/framework/src/Illuminate/Container/Container.php",
        "class": "ReflectionException",
        "trace": [
            "#0 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Container/Container.php(741): ReflectionClass->__construct('XyzController')",
            "#1 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Container/Container.php(631): Illuminate\\Container\\Container->build('XyzController', Array)",
            "#2 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(674): Illuminate\\Container\\Container->make('XyzController', Array)",
            "#3 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(85): Illuminate\\Foundation\\Application->make('XyzController')",
            "#4 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(57): Illuminate\\Routing\\ControllerDispatcher->makeController('XyzController')",
            "#5 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Routing/Route.php(203): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Dingo\\Api\\Http\\Request), 'XyzController', 'index')",
            "#6 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Routing/Route.php(134): Illuminate\\Routing\\Route->runWithCustomDispatcher(Object(Dingo\\Api\\Http\\Request))",
            "#7 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(708): Illuminate\\Routing\\Route->run(Object(Dingo\\Api\\Http\\Request))",
            "#8 [internal function]: Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#9 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(139): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
            "#10 [internal function]: Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#11 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
            "#12 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(710): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
            "#13 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(675): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Dingo\\Api\\Http\\Request))",
            "#14 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(635): Illuminate\\Routing\\Router->dispatchToRoute(Object(Dingo\\Api\\Http\\Request))",
            "#15 /var/www/html/api/vendor/dingo/api/src/Routing/Adapter/Laravel.php(65): Illuminate\\Routing\\Router->dispatch(Object(Dingo\\Api\\Http\\Request))",
            "#16 /var/www/html/api/vendor/dingo/api/src/Routing/Router.php(559): Dingo\\Api\\Routing\\Adapter\\Laravel->dispatch(Object(Dingo\\Api\\Http\\Request), 'v1')",
            "#17 /var/www/html/api/vendor/dingo/api/src/Http/Middleware/Request.php(112): Dingo\\Api\\Routing\\Router->dispatch(Object(Dingo\\Api\\Http\\Request))",
            "#18 [internal function]: Dingo\\Api\\Http\\Middleware\\Request->Dingo\\Api\\Http\\Middleware\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#19 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(139): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
            "#20 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#21 [internal function]: Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#22 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
            "#23 /var/www/html/api/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#24 [internal function]: Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#25 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
            "#26 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#27 [internal function]: Illuminate\\Session\\Middleware\\StartSession->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#28 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
            "#29 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#30 [internal function]: Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#31 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
            "#32 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(59): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#33 [internal function]: Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#34 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
            "#35 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#36 [internal function]: Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#37 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
            "#38 [internal function]: Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#39 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
            "#40 /var/www/html/api/vendor/dingo/api/src/Http/Middleware/Request.php(113): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
            "#41 /var/www/html/api/vendor/dingo/api/src/Http/Middleware/Request.php(89): Dingo\\Api\\Http\\Middleware\\Request->sendRequestThroughRouter(Object(Dingo\\Api\\Http\\Request))",
            "#42 [internal function]: Dingo\\Api\\Http\\Middleware\\Request->handle(Object(Illuminate\\Http\\Request), Object(Closure))",
            "#43 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)",
            "#44 [internal function]: Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))",
            "#45 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))",
            "#46 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(122): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
            "#47 /var/www/html/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(87): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))",
            "#48 /var/www/html/api/index.php(54): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))",
            "#49 {main}"
        ]
    }

}

@rk87 Please help for same, why I'm getting error.

  1. some tutorial has did it, https://www.youtube.com/watch?v=tBqTn4D9mLE nginx in this case.
  2. php artisan serve just a command wrapper of php -S, you can ignore httpd server config and easier for testing in development mode before go live production. Apache / Nginx provider better performance in production mode.
  3. did you check php artisan api:routes, if [ReflectionException] shown, you should check which namespace is using in XyzController, and what the path you locate XyzController.php

I have find out solution of reflectionException, if I'm just writing XyzController to apply full path of controller like App\Http\Controllers\XyzController@index then it's working

@rk87 Thanks for helping out @tankhit. Looks like you're good to go @tankhit, btw you can simplify the namespace requirement for controllers by making your route decleration look like this:

$api->version('v1', ['namespace' => 'App\Http\Controllers'], function ($api) {
      $api->get('users','XyzController@index');
  });

@hskrasek exactly I have make namespace and used on there to directly written name of Controller M'i right ?

i have the same problem. I have "dev,cinqsnipe.com:8080/api/authenticate" and i get json response in my own computer. But if i use ip of my computer it says 404 error. why is that? can anyone help me plaese?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

yanguanglan picture yanguanglan  路  3Comments

Sogl picture Sogl  路  4Comments

Kirtsen picture Kirtsen  路  3Comments

adrian-fjellberg picture adrian-fjellberg  路  4Comments

cristiammercado picture cristiammercado  路  3Comments