api-token.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. use Illuminate\Support\Facades\Route;
  3. use Webkul\Shop\Http\Controllers\API\BearerAddressController;
  4. use Webkul\Shop\Http\Controllers\API\CouponController;
  5. use Webkul\Shop\Http\Controllers\API\HomeController;
  6. use Webkul\Shop\Http\Controllers\API\OrderController;
  7. /**
  8. * Token / Storefront Key 认证的 API 路由
  9. *
  10. * 不受 web 中间件组影响(无 Session、无 CSRF、无 Cookie 加密)
  11. */
  12. Route::group(['prefix' => 'api'], function () {
  13. /**
  14. * 首页数据接口(X-STOREFRONT-KEY 认证,无需登录)
  15. */
  16. Route::controller(HomeController::class)
  17. ->middleware('storefront.key')
  18. ->group(function () {
  19. Route::get('home', 'index')->name('shop.api.home.index');
  20. });
  21. /** 客户地址管理(Bearer Token 认证) */
  22. Route::controller(BearerAddressController::class)
  23. ->middleware('bearer.token')
  24. ->prefix('customer/token/address')
  25. ->group(function () {
  26. Route::get('', 'index')->name('shop.api.token.customer.addresses.index');
  27. Route::post('', 'store')->name('shop.api.token.customer.addresses.store');
  28. Route::get('{id}', 'show')->name('shop.api.token.customer.addresses.show');
  29. Route::put('{id}', 'update')->name('shop.api.token.customer.addresses.update');
  30. Route::delete('{id}', 'destroy')->name('shop.api.token.customer.addresses.destroy');
  31. });
  32. /** 专属优惠券(Bearer Token 认证) */
  33. Route::controller(CouponController::class)
  34. ->middleware('bearer.token')
  35. ->prefix('customer/coupons')
  36. ->group(function () {
  37. Route::get('', 'index')->name('shop.api.token.customer.coupons.index');
  38. Route::post('claim', 'claim')->name('shop.api.token.customer.coupons.claim');
  39. });
  40. /** 客户订单管理(Bearer Token 认证) */
  41. Route::controller(OrderController::class)
  42. ->middleware('bearer.token')
  43. ->prefix('customer/orders')
  44. ->group(function () {
  45. Route::get('', 'index')->name('shop.api.token.customer.orders.index');
  46. Route::get('tracking', 'tracking')->name('shop.api.token.customer.orders.tracking');
  47. Route::get('{id}', 'show')->name('shop.api.token.customer.orders.show');
  48. });
  49. });