0

我在我的 api 路由文件中创建了 2 个路由组,我无法访问第二组的路由。

第一组:

$api     = app('Dingo\Api\Routing\Router');
$request = app('\Dingo\Api\Http\Request');

$api->dispatch($request);
/* API V1 ROUTES */

$prefix = 'test';

$api->group(['prefix' => $prefix,'version'=> 'v1'],function($api) {

    $api->post('/entity/validate/{code}', [
        'as'    => 'validate.code',
        'uses'  => 'App\Http\Controllers\XXX\Api\SmsController@validateCodeV1',
    ]);
});

这是完美的工作,我达到了我的功能 validateCodeV1 完美地完成了它的工作。另一方面,我紧随其后第二组:

$prefix = 'testv2';
$api->group(['prefix' => $prefix,'version'=> 'v2'],function($api) {

    $api->post('/entity/validate/{code}', [
        'as'    => 'validate.code',
        'uses'  => 'App\Http\Controllers\XXX\Api\SmsController@validateCode',
    ]);
});

在这里,当我尝试使用前缀 testv2/entity/validate/XXX 调用我的 api 时,我有一个 404

我不知道如何正确指定前缀以从 v1 路由交换到 v2 路由...我使用 Laravel 5.5

编辑:路线检查仅包含我的两条路线之一,即使在缓存清除之后:

php artisan route:list | grep entity/validate
|        | POST                                   | /test/entity/validate/{code}                                                                       | validate.code                                | Closure                                                                                                    | api.controllers               |
4

2 回答 2

1

我已经尝试了您的代码并将$api->更改为Route::并且两者都可以正常工作并在 php artisan route:list 中列出。

$prefix = 'test';
Route::group(['prefix' => $prefix,'version'=> 'v1'],function($api) {
    Route::post('/entity/validate/{code}', [
        'as'    => 'validate.code',
        'uses'  => 'App\Http\Controllers\XXX\Api\SmsController@validateCodeV1',
    ]);
});

$prefix = 'testv2';
Route::group(['prefix' => $prefix,'version'=> 'v2'],function($api) {
    Route::post('/entity/validate/{code}', [
        'as'    => 'validate.code',
        'uses'  => 'App\Http\Controllers\XXX\Api\SmsController@validateCode',
    ]);
});

我认为,您可以检查您的 $api 或 $request,可能有错误、功能或其他仅允许 v1 版本的内容。

于 2020-04-20T19:50:09.247 回答
0

我通过混合这篇文章的 2 个解决方案来修复它: Dingo API - 如何在 url 中添加版本号? 它不完全是重复的,所以我让我的帖子,但如果有人认为它适合删除我的帖子,请问我会这样做

于 2020-04-21T11:01:53.310 回答