やることはこちらの通り。
・ 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'
テストです
テストですと返ってきたら今回の内容は終了です。
わからないところなどあればコメントでお願いします。