質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2134閲覧

xamppで動かしているLaravelのAPIテストでObject not found!が帰ってきてしまう

lkjgffh

総合スコア37

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2018/01/05 05:40

編集2018/01/05 06:38

###前提・実現したいこと
laravelのapi-testerでリクエストを投げてJsonデータを取得したい

###発生している問題・エラーメッセージ
get /api/accounts_information_detail/2 (投げたリクエスト)
header Content-Type:application/json

Object not found! 要求された URL は本サーバでは見つかりませんでした。 参照元ページのリンクが間違っているか、古くなってしまっているようです。 ページの著者にこのエラーをお知らせ下さい。 サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。 Error 404 localhost Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/7.1.6

###該当のソースコード
コントローラー

public function UserDetails(Request $request){ $user_id = $request->user_id; $response["user_name"] = DB::table('users') ->select('user_name') ->where('user_id', '=', $user_id) ->value('user_name'); return Response::json($response); }

ルート

Route::get('/api/accounts_information/{user_id}', 'UserAPIController@UserDetails');

###分からないこと
今回使っているAPIの検証ツールはLaravelにダウンロードして
http://localhost/okusuri/public/api-tester
というようなURLでアクセスして使うツールです。ですのでアプリケーションそのものに接続できないわけではありません

Laravelのマイグレーションファイルはデータベースにあった既存テーブルから作りました。なのでmysqlに接続できないわけでもありません。

また、ページを表示させたいのではなくあくまでJsonデータを返したいのでページが見つからないというエラーが出るとは思っていませんでした。
ルートのコントローラー名は間違っていないのでどこが悪いのか分かりません。アプリケーションのTop画面が表示できないならドキュメントルートが間違っているのかと思うのですが、今回の場合疑わしいところがどこか検討がつきません。

この設定がこことあわせてある必要があるなど原因の特定につながりそうなものをご存知の方はご指摘いただけないでしょうか。よろしくお願いいたします

バージョン
Laravel5.5

routeList

$ php artisan route:list +--------+----------------------------------------+------------------------------------------+----------------------------------------+------------------------------------------------------------+----------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+----------------------------------------+------------------------------------------+----------------------------------------+------------------------------------------------------------+----------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | GET|HEAD | / | | Closure | web | | | GET|HEAD | api | | Closure | web | | | GET|HEAD | api-tester | api-tester.home | Asvae\ApiTester\Http\Controllers\HomeController@index | Illuminate\Cookie\Middleware \EncryptCookies,Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse,Illuminate\Session\Middleware\StartSession,Illuminate\View\Middleware\ShareErrorsFromSession | | | GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS | api-tester/* routes should not be cached | api-tester.routes-should not be cached | Closure | Illuminate\Cookie\Middleware \EncryptCookies,Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse,Illuminate\Session\Middleware\StartSession,Illuminate\View\Middleware\ShareErrorsFromSession | | | GET|HEAD | api-tester/assets/fonts/{_file} | api-tester.image | Asvae\ApiTester\Http\Controllers\AssetsController@font | Illuminate\Cookie\Middleware \EncryptCookies,Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse,Illuminate\Session\Middleware\StartSession,Illuminate\View\Middleware\ShareErrorsFromSession | | | GET|HEAD | api-tester/assets/img/{_file} | api-tester.image | Asvae\ApiTester\Http\Controllers\AssetsController@image | Illuminate\Cookie\Middleware \EncryptCookies,Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse,Illuminate\Session\Middleware\StartSession,Illuminate\View\Middleware\ShareErrorsFromSession | | | GET|HEAD | api-tester/assets/{_file} | api-tester.file | Asvae\ApiTester\Http\Controllers\AssetsController@index | Illuminate\Cookie\Middleware \EncryptCookies,Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse,Illuminate\Session\Middleware\StartSession,Illuminate\View\Middleware\ShareErrorsFromSession | | | POST | api-tester/requests/destroy | api-tester. | Asvae\ApiTester\Http\Controllers\RequestController@destroy | Illuminate\Cookie\Middleware \EncryptCookies,Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse,Illuminate\Session\Middleware\StartSession,Illuminate\View\Middleware\ShareErrorsFromSession | | | POST | api-tester/requests/index | api-tester. | Asvae\ApiTester\Http\Controllers\RequestController@index | Illuminate\Cookie\Middleware \EncryptCookies,Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse,Illuminate\Session\Middleware\StartSession,Illuminate\View\Middleware\ShareErrorsFromSession | | | POST | api-tester/requests/store | api-tester. | Asvae\ApiTester\Http\Controllers\RequestController@store | Illuminate\Cookie\Middleware \EncryptCookies,Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse,Illuminate\Session\Middleware\StartSession,Illuminate\View\Middleware\ShareErrorsFromSession | | | POST | api-tester/requests/update | api-tester. | Asvae\ApiTester\Http\Controllers\RequestController@update | Illuminate\Cookie\Middleware \EncryptCookies,Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse,Illuminate\Session\Middleware\StartSession,Illuminate\View\Middleware\ShareErrorsFromSession | | | POST | api-tester/routes/index | api-tester. | Asvae\ApiTester\Http\Controllers\RouteController@index | Illuminate\Cookie\Middleware \EncryptCookies,Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse,Illuminate\Session\Middleware\StartSession,Illuminate\View\Middleware\ShareErrorsFromSession | | | POST | api/accounts_information | | App\Http\Controllers\UserAPIController@UserRegistration | web | | | GET|HEAD | api/accounts_information/{account_code} | | App\Http\Controllers\UserAPIController@UserList | web | | | GET|HEAD | api/accounts_information/{user_id} | | App\Http\Controllers\UserAPIController@UserDetails | web | | | GET|HEAD | api/user | | Closure | api,auth:api | +--------+----------------------------------------+------------------------------------------+----------------------------------------+------------------------------------------------------------+----------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------+

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nazonohito51

2018/01/05 06:23

エラーだけを見るとルーティングルールにマッチしてなさそうですね。Laravelのルーティングを定義を記述するファイルって複数あるので、次のコマンドの実行結果も載せていただくと回答しやすいです! `php artisan route:list`
lkjgffh

2018/01/05 06:39

コメントありがとうございます、現在このようなルーティングになっています
guest

回答1

0

ベストアンサー

php artisan route:listの結果を見る限りLaravel側のルーティング定義には問題はなさそうなのが分かりましたので、xamppのドキュメントルートの問題に見えます。
xamppのドキュメントルートをLaravelのpublicディレクトリ直下にしていただくと直るかと思います。


Laravelはpublicディレクトリ直下がドキュメントルートとしてアクセスされることを想定したフレームワークなので、本来のアクセス方法は

×: http://localhost/okusuri/public/api-tester
○: http://localhost/api-tester

となりますが、今はxamppのドキュメントルートがokusuriディレクトリの階層に位置されてしまっているため上のアクセス方法になっているのかと思います。
それでapi-testerの出すリクエストと実際のURLが噛み合わずにエラーになっているのかと。

たぶんapi-testerが出してるリクエスト: http://localhost/api/accounts_information_detail/2
今回のケースだとこういうリクエストじゃないと返ってこない: http://localhost/okusuri/public/api/accounts_information_detail/2

api-testerの出しているリクエストが間違っているわけではないので、ドキュメントルートをLaravelの求める形になおしていくのが正しい解決方法だと思います。

投稿2018/01/05 07:15

nazonohito51

総合スコア62

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問