0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LaravelでAPIを実装【難しいところは省きました】

Posted at

やることはこちらの通り。

・ APIのURLの作成
・ プログラム(API)の作成

今回の記事はLarabelのこともそうですが、APIについても初学者向けに作ってます。
 
Larabelの環境構築については、__Larabel 環境構築 mac__と調べれば記事がたくさん出てきますので、そちらを見てもらえればと思います。

###APIのURLの作成

作成したLarabelのプロジェクトをVSコードなどで開いてみると、プロジェクトName/routesにapi.phpと書かれたクラスがあります。

そこに新しくURLを作成していきます。

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

// 下記を追加
Route::get('test', 'App\Http\Controllers\TestAPIController@sample');

今回は http://127.0.0.1:8000/api/test をAPIのURLとして作成しています。

本当はこのURLについてももっと説明したいところですが、とりあえず難しいことは省いて書きます。

###プログラム(API)の作成

__プロジェクトName/app/Http/Controllers__というディレクトリがあります。
その中に__TestAPIController.phpクラスを作成__してください。

作成したら下記のソースを貼り付けてください。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class TestAPIController extends Controller
{
   // sampleアクションを定義
   public function sample()
   {
       return 'テストです';
   }

}

以上で作成するプログラムはこれで終了です。
すごく単純ですが、テストですという文字列を返してくれるAPIができました。

###URLの確認

こちらのコマンドを叩きます。

 Macbook:YourApp name$ php artisan route:list

するとこんな感じで返ってきます。

 Macbook:YourApp name$ php artisan route:list
    +--------+----------+---------------------+------+------------------------------------------------------------+------------------------------------------+
    | Domain | Method   | URI                 | Name | Action                                                     | Middleware                               |
    +--------+----------+---------------------+------+------------------------------------------------------------+------------------------------------------+
    |        | GET|HEAD | /                   |      | Closure                                                    | web                                      |
    |        | GET|HEAD | api/test            |      | App\Http\Controllers\TestAPIController@sample              | api                                      |
    |        | GET|HEAD | api/user            |      | Closure                                                    | api                                      |
    |        |          |                     |      |                                                            | App\Http\Middleware\Authenticate:sanctum |
    |        | GET|HEAD | sanctum/csrf-cookie |      | Laravel\Sanctum\Http\Controllers\CsrfCookieController@show | web                                      |
    +--------+----------+---------------------+------+------------------------------------------------------------+------------------------------------------+

api/testというURLがあれば正常です。

api/testがない場合は書いたソースを保存してないとか、書く場所を間違えてるとかそんな感じだと思います。
その場合はapi/testを除いたものだけ表示されます。下記のような感じ。

 Macbook:YourApp name$ php artisan route:list
    +--------+----------+---------------------+------+------------------------------------------------------------+------------------------------------------+
    | Domain | Method   | URI                 | Name | Action                                                     | Middleware                               |
    +--------+----------+---------------------+------+------------------------------------------------------------+------------------------------------------+
    |        | GET|HEAD | /                   |      | Closure                                                    | web                                      |
    |        | GET|HEAD | api/user            |      | Closure                                                    | api                                      |
    |        |          |                     |      |                                                            | App\Http\Middleware\Authenticate:sanctum |
    |        | GET|HEAD | sanctum/csrf-cookie |      | Laravel\Sanctum\Http\Controllers\CsrfCookieController@show | web                                      |
    +--------+----------+---------------------+------+------------------------------------------------------------+------------------------------------------+

###サーバの起動とAPIをコマンドで叩く

できたらターミナルで下記コマンドを打ちサーバを起動します。

   Macbook:YourApp name$ php artisan serve

起動後に別のターミナルを開き下記コマンドを打ちます。

   Macbook:YourApp name$ curl 'http://127.0.0.1:8000/api/test'

するとこんな感じで帰ってくると思います。

   Macbook:YourApp name$ curl 'http://127.0.0.1:8000/api/test'
   テストです

テストですと返ってきたら今回の内容は終了です。
わからないところなどあればコメントでお願いします。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?