2017-12-24 14:17:18 +00:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| API Routes
|
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
| Here is where you can register API routes for your application. These
|
|
|
|
|
| routes are loaded by the RouteServiceProvider within a group which
|
|
|
|
|
| is assigned the "api" middleware group. Enjoy building your API!
|
|
|
|
|
|
|
|
|
|
|
*/
|
2018-06-10 08:39:32 +00:00
|
|
|
|
|
2018-06-02 17:21:16 +00:00
|
|
|
|
$api = app('Dingo\Api\Routing\Router');
|
2017-12-24 14:17:18 +00:00
|
|
|
|
|
2018-06-10 08:39:32 +00:00
|
|
|
|
$api->version('v1', [
|
|
|
|
|
'namespace' => 'App\Http\Controllers\Api',
|
2018-06-10 11:28:01 +00:00
|
|
|
|
'middleware' => ['serializer:array', 'bindings'],//注意里的bindings中间件,使用这个才能使用隐式路由绑定
|
2018-06-10 08:39:32 +00:00
|
|
|
|
], function ($api) {
|
2018-06-03 09:37:54 +00:00
|
|
|
|
$api->group([
|
|
|
|
|
'middleware' => 'api.throttle',
|
|
|
|
|
'limit' => config('api.rate_limits.sign.limit'),
|
|
|
|
|
'expires' => config('api.rate_limits.sign.expires'),
|
|
|
|
|
], function ($api) {
|
|
|
|
|
// 短信验证码
|
|
|
|
|
$api->post('verificationCodes', 'VerificationCodesController@store')
|
|
|
|
|
->name('api.verificationCodes.store');
|
|
|
|
|
// 用户注册
|
|
|
|
|
$api->post('users', 'UsersController@store')
|
|
|
|
|
->name('api.users.store');
|
2018-06-03 10:58:09 +00:00
|
|
|
|
|
|
|
|
|
// 图片验证码
|
|
|
|
|
$api->post('captchas', 'CaptchasController@store')
|
|
|
|
|
->name('api.captchas.store');
|
|
|
|
|
|
2018-06-03 13:09:33 +00:00
|
|
|
|
// 第三方登录
|
|
|
|
|
$api->post('socials/{social_type}/authorizations', 'AuthorizationsController@socialStore')
|
|
|
|
|
->name('api.socials.authorizations.store');
|
|
|
|
|
|
2018-06-03 15:45:49 +00:00
|
|
|
|
// 登录
|
|
|
|
|
$api->post('authorizations', 'AuthorizationsController@store')
|
|
|
|
|
->name('api.authorizations.store');
|
|
|
|
|
|
|
|
|
|
// 刷新token
|
|
|
|
|
$api->put('authorizations/current', 'AuthorizationsController@update')
|
|
|
|
|
->name('api.authorizations.update');
|
|
|
|
|
// 删除token
|
|
|
|
|
$api->delete('authorizations/current', 'AuthorizationsController@destroy')
|
|
|
|
|
->name('api.authorizations.destroy');
|
2018-06-10 10:04:03 +00:00
|
|
|
|
|
|
|
|
|
// 游客可以访问的接口
|
|
|
|
|
$api->get('categories', 'CategoriesController@index')
|
|
|
|
|
->name('api.categories.index');
|
2018-06-10 11:28:01 +00:00
|
|
|
|
//话题列表
|
|
|
|
|
$api->get('topics', 'TopicsController@index')->name('api.topics.index');
|
|
|
|
|
//某用户的话题列表
|
|
|
|
|
$api->get('users/{user}/topics', 'TopicsController@userIndex')->name('api.users.topics.index');
|
2018-06-10 11:32:12 +00:00
|
|
|
|
//话题详情
|
|
|
|
|
$api->get('topics/{topic}', 'TopicsController@show')->name('api.topics.show');
|
2018-06-03 09:37:54 +00:00
|
|
|
|
});
|
|
|
|
|
|
2018-06-10 08:39:32 +00:00
|
|
|
|
// 需要 token 验证的接口
|
2018-06-10 10:35:53 +00:00
|
|
|
|
$api->group(['middleware' => 'api.auth',], function ($api) {
|
2018-06-10 08:39:32 +00:00
|
|
|
|
// 当前登录用户信息
|
|
|
|
|
$api->get('user', 'UsersController@me')
|
|
|
|
|
->name('api.user.show');
|
2018-06-10 09:25:41 +00:00
|
|
|
|
// 图片资源
|
|
|
|
|
$api->post('images', 'ImagesController@store')
|
|
|
|
|
->name('api.images.store');
|
|
|
|
|
// 编辑登录用户信息
|
|
|
|
|
$api->patch('user', 'UsersController@update')
|
|
|
|
|
->name('api.user.update');
|
2018-06-10 10:04:03 +00:00
|
|
|
|
//发布话题
|
|
|
|
|
$api->post('topics', 'TopicsController@store')->name('api.topics.store');
|
2018-06-10 10:35:53 +00:00
|
|
|
|
//发布话题
|
|
|
|
|
$api->patch('topics/{topic}', 'TopicsController@update')->name('api.topics.update');
|
2018-06-10 11:28:01 +00:00
|
|
|
|
//删除话题
|
|
|
|
|
$api->delete('topics/{topic}', 'TopicsController@destroy')->name('api.topics.destroy');
|
2018-06-10 14:37:37 +00:00
|
|
|
|
// 发布回复
|
|
|
|
|
$api->post('topics/{topic}/replies', 'RepliesController@store')
|
|
|
|
|
->name('api.topics.replies.store');
|
|
|
|
|
//删除回复
|
|
|
|
|
$api->delete('replies/{reply}', 'RepliesController@destroy')->name('api.replies.destroy');
|
|
|
|
|
// 话题回复列表
|
|
|
|
|
$api->get('topics/{topic}/replies', 'RepliesController@index')
|
|
|
|
|
->name('api.topics.replies.index');
|
|
|
|
|
//某个用户的回复列表
|
|
|
|
|
$api->get('users/{user}/replies', 'RepliesController@userIndex')
|
|
|
|
|
->name('api.users.replies.index');
|
2018-06-11 14:27:53 +00:00
|
|
|
|
// 通知列表
|
|
|
|
|
$api->get('user/notifications', 'NotificationsController@index')
|
|
|
|
|
->name('api.user.notifications.index');
|
|
|
|
|
// 通知统计
|
|
|
|
|
$api->get('user/notifications/stats', 'NotificationsController@stats')
|
|
|
|
|
->name('api.user.notifications.stats');
|
|
|
|
|
// 标记消息通知为已读
|
|
|
|
|
$api->patch('user/read/notifications', 'NotificationsController@read')
|
|
|
|
|
->name('api.user.notifications.read');
|
2018-06-11 15:10:59 +00:00
|
|
|
|
|
|
|
|
|
// 当前登录用户权限
|
|
|
|
|
$api->get('user/permissions', 'PermissionsController@index')
|
|
|
|
|
->name('api.user.permissions.index');
|
2018-06-10 08:39:32 +00:00
|
|
|
|
});
|
2018-06-03 09:37:54 +00:00
|
|
|
|
|
2018-06-02 17:21:16 +00:00
|
|
|
|
});
|
|
|
|
|
|
2018-06-03 08:11:51 +00:00
|
|
|
|
/*$api->version('v2', function ($api) {
|
2018-06-02 17:21:16 +00:00
|
|
|
|
$api->get('version', function () {
|
|
|
|
|
return response('this is version v2');
|
|
|
|
|
});
|
2018-06-03 08:11:51 +00:00
|
|
|
|
});*/
|
2018-06-02 17:21:16 +00:00
|
|
|
|
|
2018-06-10 11:28:01 +00:00
|
|
|
|
|