Laravelで外部からAPI叩いてデータ入力みたいなことをしたかったのでこれを機に勉強。認証とかを通してないのでそのまま公開すると危険です・・(汗)
参考リンク
[PHP] Laravel5.6で、サクッとRESTful APIを作成する
下記のようにファイルをセットします。
ルーティング
api/route.php
1 |
Route::resource('customer', 'Api\CustomerController'); |
上記のようにルーティングをセットするだけですでにgetやpostでのアクセスができてしまいます。
詳細なルーティングはphp artisan route:list
で見れます。(API以外のものも見れます。)
コントローラー
app/Http/Controllers/Api/CustomerController.php
(別にディレクトリの位置はApiのなかに作らなくても大丈夫です。)
最初のうちは php artisan make:controller CustomerController --resource
などのコマンドで自動生成した方が楽だと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Model\Customer; use Log; use App\Model\StepMail; class CustomerController extends Controller { public function __construct() { } public function index(Request $request) { return response()->json([ [ 'name' => 'Yohei' ] ]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } } |
APIサービス postman
APIの場合、今までGETに関しては直接URLを叩いて、確認してましたが、POSTの場合、
- formを作ってPOSTする
- curlコマンドを使う
- postmanのようなWEBサービスを使う
などの選択肢があります。curlコマンドがお手軽ですが、APIがらみの検証ではpostmanと言うサービスが使えます。
APIがらみの検証ではかなり有名なツールのようです。
urlにパラメータを送信して結果などを自由に見ることができます。自分の場合、Chromeの拡張ツールを使いましたが、かなり使えますね。
参考リンク