次のようなルートが欲しいです。
$app->get('/FetchImages/{catid}[/{subcatid}]/{page}', function ($request, $response, $args) {
//Code
});
ルートで私は以下をしたい:
1つのルートでそれを行うことはできますか?もしそうなら、それはどのように達成できますか?これらのパスに対して1つの関数が必要です。
{catid}/{page}
{catid}/{subcatid}/{page}
オプションの後に必須のプレースホルダーを配置することはできません。試してみると、fastRoute(ルーター、Slimで使用)はエラーになります。
また、SlimとfastRouteから抽象化したとしても、APIのURL構造を再検討することをお勧めします。必須が最初に来て、オプションが後で来るのは当然です。
ルートに同じコールバックを使用できるようにするにはpage
、クエリパラメータとして渡すことをお勧めします。
$this->get('/FetchImages/{categoryId}[/{subcategoryId}]', function($request, $response, $args) {
$categoryId = $args['categoryId'];
$subcategoryId = $args['subcategoryId'];
// Get requested page value.
// It defaults to null if no page specified
$page = $request->getQueryParam('page', null);
});
そして、次のようなリクエストを送信します。
GET http://myapp.com/FetchImages/kittens/dangerous?page=2
この場合、ページを自由に通過またはスキップでき、URL構造は依然として非常にクリーンです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加