Laravelを使用してRESTfulAPIを構築しています。ルーティングの方法がわかりません。
私は次のAPIコントローラーを持っています
class APIController extends BaseController{
public function sendMsg($authid, $roomid, $msg){
}
public function getMsg($roomid, $timestamp){
}
}
これにアクセスできるようにしたいURL形式は次のようになります。 http://example.com/api/{functionName}/{parameter1}/{parameter2}/.../
ここで、最初のパラメーターには、コントローラークラスの関数にマップする関数名があり、それに続いてコントローラーが必要とするパラメーターがあります。
たとえば
、sendMsg()
関数にアクセスするには、URLは次のようになります。
http://example.com/api/sendMsg/sdf879s8/2/hi+there+whats+up
getMsg()
関数にアクセスするには、URLは次のようになります。http://example.com/api/getMsg/2/1395796678
次のように、関数名ごとに1つのルートを記述できます。
Route::get('/api/sendmsg/{authid}/{msg}', function($authid, $msg){
//call function...
});
他の機能についても同様です。これは問題ない場合ですが、すべての関数を1つのルートでAPIControllerに結合する方法はありますか?
はい、以下を構築するのに最適なリソースの豊富なコントローラーをAPIController
使用することで、すべての機能を1つのルートに組み合わせることができます。API
Route::resource('api' ,'APIController');
ただし、技術的には、これは1つのルートではなく、関数ごとにLaravel
複数のルートを生成します。routes
ルートを確認するにはphp artisan routes
、コマンドプロンプト/ターミナルからコマンドを実行できます。
を作成するresourceful controller
には、コマンドラインから次のコマンドを実行できます。
php artisan controller:make APIController
これにより、6つの関数(スケルトン/構造のみ)を持つコントローラーが作成され、各関数がHTTP
動詞にマップされます。つまり、リクエストタイプ(GET / POSTなど)に応じて、関数が呼び出されます。たとえば、http://domain.com/api
using GET
requestを使用してリクエストが行わgetIndex
れると、メソッドが呼び出されます。
public function getIndex()
{
// ...
}
適切に理解するには、ドキュメントを確認する必要があります。これはRESTful
APIとして知られています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加