Skip to content

Commit 9b85369

Browse files
Add API versioning and apply ApiGroup attribute
1 parent b33ab4c commit 9b85369

20 files changed

+54
-11
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace Grand.SharedKernel.Extensions;
2+
3+
public static class ApiConstants
4+
{
5+
public const string ApiGroupNameV1 = "v1";
6+
public const string ApiGroupNameV2 = "v2";
7+
}

src/Web/Grand.Web/Controllers/BlogController.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
using Microsoft.AspNetCore.Http;
1717
using Microsoft.AspNetCore.Mvc;
1818
using Microsoft.Extensions.DependencyInjection;
19+
using Grand.SharedKernel.Attributes;
1920

2021
namespace Grand.Web.Controllers;
2122

23+
[ApiGroup(SharedKernel.Extensions.ApiConstants.ApiGroupNameV2)]
2224
public class BlogController : BasePublicController
2325
{
2426
#region Constructors

src/Web/Grand.Web/Controllers/CatalogController.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
using Grand.Business.Core.Interfaces.Customers;
1010
using Grand.Domain.Permissions;
1111
using Grand.Domain.Catalog;
12-
using Grand.Domain.Customers;
1312
using Grand.Domain.Vendors;
1413
using Grand.Infrastructure;
1514
using Grand.Web.Commands.Models.Vendors;
@@ -21,9 +20,12 @@
2120
using Grand.Web.Models.Vendors;
2221
using MediatR;
2322
using Microsoft.AspNetCore.Mvc;
23+
using Grand.SharedKernel.Attributes;
24+
using Microsoft.AspNetCore.Http;
2425

2526
namespace Grand.Web.Controllers;
2627

28+
[ApiGroup(SharedKernel.Extensions.ApiConstants.ApiGroupNameV2)]
2729
public class CatalogController : BasePublicController
2830
{
2931
#region Constructors
@@ -89,6 +91,7 @@ private VendorReviewOverviewModel PrepareVendorReviewOverviewModel(Domain.Vendor
8991

9092
#region Categories
9193

94+
[ProducesResponseType(typeof(CategoryModel), StatusCodes.Status200OK)]
9295
[HttpGet]
9396
public virtual async Task<IActionResult> Category(string categoryId, CatalogPagingFilteringModel command)
9497
{
@@ -319,8 +322,7 @@ public virtual async Task<IActionResult> VendorAll(VendorPagingModel command)
319322
[HttpPost]
320323
[AutoValidateAntiforgeryToken]
321324
[DenySystemAccount]
322-
public virtual async Task<IActionResult> VendorReviews(
323-
VendorReviewsModel model)
325+
public virtual async Task<IActionResult> VendorReviews(VendorReviewsModel model)
324326
{
325327
var vendor = await _vendorService.GetVendorById(model.VendorId);
326328
if (vendor is not { Active: true } || !vendor.AllowCustomerReviews)

src/Web/Grand.Web/Controllers/CheckoutController.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
using Grand.Domain.Shipping;
1717
using Grand.Infrastructure;
1818
using Grand.Infrastructure.Extensions;
19+
using Grand.SharedKernel.Attributes;
1920
using Grand.Web.Common.Controllers;
2021
using Grand.Web.Common.Filters;
2122
using Grand.Web.Extensions;
@@ -30,6 +31,7 @@
3031
namespace Grand.Web.Controllers;
3132

3233
[DenySystemAccount]
34+
[ApiGroup(SharedKernel.Extensions.ApiConstants.ApiGroupNameV2)]
3335
public class CheckoutController : BasePublicController
3436
{
3537
#region Constructors

src/Web/Grand.Web/Controllers/CommonController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
namespace Grand.Web.Controllers;
3131

32+
[ApiGroup(SharedKernel.Extensions.ApiConstants.ApiGroupNameV2)]
3233
public class CommonController : BasePublicController
3334
{
3435
#region Constructors

src/Web/Grand.Web/Controllers/ContactController.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Grand.Domain.Media;
77
using Grand.Domain.Stores;
88
using Grand.Infrastructure;
9+
using Grand.SharedKernel.Attributes;
910
using Grand.Web.Commands.Models.Contact;
1011
using Grand.Web.Common.Controllers;
1112
using Grand.Web.Common.Extensions;
@@ -18,6 +19,7 @@
1819

1920
namespace Grand.Web.Controllers;
2021

22+
[ApiGroup(SharedKernel.Extensions.ApiConstants.ApiGroupNameV2)]
2123
public class ContactController : BasePublicController
2224
{
2325
#region Constructors

src/Web/Grand.Web/Controllers/CountryController.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Grand.Business.Core.Interfaces.Common.Localization;
2+
using Grand.SharedKernel.Attributes;
23
using Grand.Web.Common.Controllers;
34
using Grand.Web.Common.Filters;
45
using Grand.Web.Features.Models.Common;
@@ -8,6 +9,7 @@
89

910
namespace Grand.Web.Controllers;
1011

12+
[ApiGroup(SharedKernel.Extensions.ApiConstants.ApiGroupNameV2)]
1113
public class CountryController : BasePublicController
1214
{
1315
#region Constructors

src/Web/Grand.Web/Controllers/CourseController.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212
using Grand.Web.Features.Models.Courses;
1313
using MediatR;
1414
using Microsoft.AspNetCore.Mvc;
15+
using Grand.SharedKernel.Attributes;
1516

1617
namespace Grand.Web.Controllers;
1718

19+
[ApiGroup(SharedKernel.Extensions.ApiConstants.ApiGroupNameV2)]
1820
public class CourseController : BasePublicController
1921
{
2022
private readonly IAclService _aclService;

src/Web/Grand.Web/Controllers/DownloadController.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Grand.Domain.Customers;
1010
using Grand.Domain.Orders;
1111
using Grand.Infrastructure;
12+
using Grand.SharedKernel.Attributes;
1213
using Grand.Web.Common.Controllers;
1314
using Grand.Web.Common.Filters;
1415
using Microsoft.AspNetCore.Mvc;
@@ -19,6 +20,7 @@
1920
namespace Grand.Web.Controllers;
2021

2122
[DenySystemAccount]
23+
[ApiGroup(SharedKernel.Extensions.ApiConstants.ApiGroupNameV2)]
2224
public class DownloadController : BasePublicController
2325
{
2426
private readonly CustomerSettings _customerSettings;

src/Web/Grand.Web/Controllers/KnowledgebaseController.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@
1818
using Grand.Web.Extensions;
1919
using Grand.Web.Models.Knowledgebase;
2020
using Microsoft.AspNetCore.Mvc;
21+
using Grand.SharedKernel.Attributes;
2122

2223
namespace Grand.Web.Controllers;
2324

25+
[ApiGroup(SharedKernel.Extensions.ApiConstants.ApiGroupNameV2)]
2426
public class KnowledgebaseController : BasePublicController
2527
{
2628
private readonly IAclService _aclService;

0 commit comments

Comments
 (0)