Skip to content

Commit 745e85d

Browse files
committed
Seperate API definitions
1 parent 9f41e45 commit 745e85d

4 files changed

Lines changed: 18 additions & 18 deletions

File tree

StarWars.API/Controllers/MoviesController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
namespace StarWars.Api.Controllers
1212
{
1313
[ApiController]
14+
[ApiExplorerSettings(GroupName = "movies")]
1415
[Route("api/[controller]")]
1516
public class MoviesController : ControllerBase
1617
{

StarWars.API/Controllers/OrdersController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace StarWars.API.Controllers
1313
{
1414
[ApiController]
15+
[ApiExplorerSettings(GroupName = "orders")]
1516
[Route("[controller]")]
1617
public class OrdersController : ControllerBase
1718
{

StarWars.API/Controllers/WebJetController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
namespace StarWars.Api.Controllers
66
{
77
[ApiController]
8+
[ApiExplorerSettings(GroupName = "webjet")]
89
[Route("api/[controller]")]
910
public class WebJetController : ControllerBase
1011
{

StarWars.API/Program.cs

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -100,31 +100,26 @@ public static async Task Main(string[] args)
100100
builder.Services.AddValidatorsFromAssemblyContaining<MovieViewValidator>(ServiceLifetime.Transient);
101101
builder.Services.AddEndpointsApiExplorer();
102102
builder.Services.AddSwaggerGen(c => {
103-
c.SwaggerDoc("v1", new OpenApiInfo { Title = "StarWars API", Version = "v1" });
103+
c.SwaggerDoc("movies", new OpenApiInfo { Title = "Movies API" });
104+
c.SwaggerDoc("webjet", new OpenApiInfo { Title = "WebJet API" });
105+
c.SwaggerDoc("orders", new OpenApiInfo { Title = "Orders API" });
104106
});
105107

106108
var app = builder.Build();
107109

108110
app.UseMiddleware<CorrelationIdMiddleware>();
109111

110-
// Load and cache orders at startup
111-
using (var scope = app.Services.CreateScope())
112-
{
113-
var orderService = scope.ServiceProvider.GetRequiredService<IOrderService>();
114-
var env = scope.ServiceProvider.GetRequiredService<IWebHostEnvironment>();
115-
await orderService.CacheOrdersAsync(env.ContentRootPath);
116-
}
112+
using var scope = app.Services.CreateScope();
113+
var env = scope.ServiceProvider.GetRequiredService<IWebHostEnvironment>();
114+
var orderService = scope.ServiceProvider.GetRequiredService<IOrderService>();
115+
var dbInitializer = scope.ServiceProvider.GetRequiredService<IDatabaseInitializer>();
116+
117+
// Cache orders from JSON file for soft startup
118+
await orderService.CacheOrdersAsync(env.ContentRootPath);
117119

118120
// DB seeding from JSON file for soft startup
119-
using (var scope = app.Services.CreateScope())
120-
{
121-
var services = scope.ServiceProvider;
122-
var env = scope.ServiceProvider.GetRequiredService<IWebHostEnvironment>();
123-
var dbInitializer = services.GetRequiredService<IDatabaseInitializer>();
124-
await dbInitializer.SeedAsync(env.ContentRootPath);
125-
}
121+
await dbInitializer.SeedAsync(env.ContentRootPath);
126122

127-
// Configure the HTTP request pipeline.
128123
if (app.Environment.IsDevelopment())
129124
{
130125
app.UseSwagger();
@@ -137,9 +132,11 @@ public static async Task Main(string[] args)
137132
app.UseSwagger();
138133
app.UseSwaggerUI(c =>
139134
{
140-
c.DocumentTitle = "Swagger - StarWars API";
141-
c.SwaggerEndpoint("/swagger/v1/swagger.json", "StarWars API V1");
135+
c.DocumentTitle = "StarWars API";
142136
c.RoutePrefix = string.Empty;
137+
c.SwaggerEndpoint("/swagger/movies/swagger.json", "Movies API");
138+
c.SwaggerEndpoint("/swagger/webjet/swagger.json", "WebJet API");
139+
c.SwaggerEndpoint("/swagger/orders/swagger.json", "Orders API");
143140
});
144141
app.UseRouting();
145142
app.UseAuthentication();

0 commit comments

Comments
 (0)