通常、コントローラに何らかの認証がない限り、ルートにはユーザIDを渡しません。例えば。管理者がユーザーを更新しています。代わりにコントローラのAuth::user()
オブジェクトを使用してください。
あなたの質問に関して、多くのオプションがあり、それはあなた次第ですが、可能な方法はresource route\controllerです。
Route::resource('user/subscription', 'User\SubscriptionController');
そして、コントローラは次のようになります。
<?php
namespace App\Http\Controllers\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class SubscriptionController extends Controller
{
public function index()
{
// get user
$user = Auth::user();
// list all user subscriptions
}
public function store(Request $request)
{
// get user
$user = Auth::user();
if(empty($user)) {
// create user
}
// create and process subscription for the user
// possibly using a plan id in the $request
}
public function show($id)
{
// get user
$user = Auth::user();
// return user subscription details for $id
}
public function update(Request $request, $id)
{
// get user
$user = Auth::user();
// update or change user subscription
// possibly using a plan id in the $request
}
public function destroy($id)
{
// get user
$user = Auth::user();
// cancel user subscription with $id
}
}
をそして、あなたのルートは、次のようになります:
GET
user/subscription
リストのすべてのユーザーサブスクリプションindex()
POST
user/subscription
ユーザーを作成するサブスクリプションstore(Request $request)
GET
user/subscription/{subscription_id}
は、ユーザのサブスクリプションshow($id)
PUT/PATCH
user/subscription/{subscription_id}
更新ユーザーサブスクリプションupdate($id)
DELETE
user/subscription/{subscription_id}
がブレインツリーやストライプのためのあなたの試みの両方のお支払い場合は、ユーザのサブスクリプションdestroy($id)
を添付[REST API - PUTとPATCHの実際の例との複製](http://stackoverflow.com/questions/28459418/rest-api-put-vs-patch-with-real-life-examples)すべての質問はこのコメントで回答され、完全に網羅されています。読んでください。 – Ohgodwhy
@Ohgodwhy REST APIに関する多くのコンテンツを読んでいます。私は私の答えを見つけることができませんでした。そして、これらの答えにも、私の質問についての確かなベストプラクティスはありません。答えがあれば答えてください。 – ivahidmontazer
"サブスクリプションはトランザクションと2つの分離したリクエスト(前後のバンク)"なので、どういう意味ですか?それは十分明確ではない。 – Gayan