Skip to content

Commit c05cfd4

Browse files
updated to latest versions, erased modelstate
1 parent bb536a7 commit c05cfd4

File tree

3 files changed

+44
-47
lines changed

3 files changed

+44
-47
lines changed

SampleWebApiAspNetCore/Controllers/v1/FoodsController.cs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,6 @@ public ActionResult<FoodItemDto> AddFood([FromBody] FoodCreateDto foodCreateDto)
7878
return BadRequest();
7979
}
8080

81-
if (!ModelState.IsValid)
82-
{
83-
return BadRequest(ModelState);
84-
}
85-
8681
FoodItem toAdd = Mapper.Map<FoodItem>(foodCreateDto);
8782

8883
_foodRepository.Add(toAdd);
@@ -171,11 +166,6 @@ public ActionResult<FoodItemDto> UpdateFood(int id, [FromBody]FoodUpdateDto food
171166
return NotFound();
172167
}
173168

174-
if (!ModelState.IsValid)
175-
{
176-
return BadRequest(ModelState);
177-
}
178-
179169
Mapper.Map(foodUpdateDto, existingFoodItem);
180170

181171
_foodRepository.Update(id, existingFoodItem);
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22

33
<PropertyGroup>
4-
<TargetFramework>netcoreapp2.1</TargetFramework>
4+
<TargetFramework>netcoreapp2.2</TargetFramework>
5+
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
56
</PropertyGroup>
67

78
<ItemGroup>
89
<Folder Include="wwwroot\" />
910
</ItemGroup>
1011

1112
<ItemGroup>
12-
<PackageReference Include="AutoMapper" Version="6.2.2" />
13+
<PackageReference Include="AutoMapper" Version="8.1.0" />
1314
<PackageReference Include="Microsoft.AspNetCore.App" />
14-
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="2.2.0" />
15-
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="2.2.0" />
16-
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.1.1" />
17-
<PackageReference Include="Swashbuckle.AspNetCore" Version="2.4.0" />
18-
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.0.8.9" />
15+
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="3.1.2" />
16+
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="3.2.0" />
17+
<PackageReference Include="Swashbuckle.AspNetCore" Version="4.0.1" />
18+
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.0.14" />
1919
</ItemGroup>
2020

2121
</Project>

SampleWebApiAspNetCore/Startup.cs

Lines changed: 37 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
using Microsoft.Extensions.Configuration;
1212
using Microsoft.Extensions.DependencyInjection;
1313
using Microsoft.Extensions.Logging;
14+
using Microsoft.Extensions.Options;
1415
using SampleWebApiAspNetCore.Dtos;
1516
using SampleWebApiAspNetCore.Entities;
1617
using SampleWebApiAspNetCore.Repositories;
1718
using SampleWebApiAspNetCore.Services;
1819
using Swashbuckle.AspNetCore.Swagger;
20+
using Swashbuckle.AspNetCore.SwaggerGen;
1921

2022
namespace WebApplication11
2123
{
@@ -55,40 +57,25 @@ public void ConfigureServices(IServiceCollection services)
5557
return new UrlHelper(actionContext);
5658
});
5759

58-
services.AddMvcCore().AddVersionedApiExplorer(o => o.GroupNameFormat = "'v'VVV");
59-
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
60+
61+
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
6062
services.AddApiVersioning(config =>
6163
{
6264
config.ReportApiVersions = true;
6365
config.AssumeDefaultVersionWhenUnspecified = true;
6466
config.DefaultApiVersion = new ApiVersion(1, 0);
6567
config.ApiVersionReader = new HeaderApiVersionReader("api-version");
6668
});
67-
services.AddSwaggerGen(
68-
options =>
69-
{
70-
var provider = services.BuildServiceProvider()
71-
.GetRequiredService<IApiVersionDescriptionProvider>();
7269

73-
foreach (var description in provider.ApiVersionDescriptions)
74-
{
75-
options.SwaggerDoc(
76-
description.GroupName,
77-
new Info()
78-
{
79-
Title = $"Sample API {description.ApiVersion}",
80-
Version = description.ApiVersion.ToString()
81-
});
82-
}
83-
});
70+
services.AddVersionedApiExplorer(o => o.GroupNameFormat = "'v'VVV");
71+
services.AddTransient<IConfigureOptions<SwaggerGenOptions>, ConfigureSwaggerOptions>();
72+
services.AddSwaggerGen();
8473
}
8574

8675
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
8776
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory,
8877
IHostingEnvironment env, IApiVersionDescriptionProvider provider)
8978
{
90-
loggerFactory.AddConsole();
91-
9279
if (env.IsDevelopment())
9380
{
9481
app.UseDeveloperExceptionPage();
@@ -114,10 +101,18 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory,
114101
});
115102
}
116103

117-
//app.AddSeedData();
118-
119104
app.UseHttpsRedirection();
120105

106+
app.UseCors("AllowAllOrigins");
107+
AutoMapper.Mapper.Initialize(mapper =>
108+
{
109+
mapper.CreateMap<FoodItem, FoodItemDto>().ReverseMap();
110+
mapper.CreateMap<FoodItem, FoodUpdateDto>().ReverseMap();
111+
mapper.CreateMap<FoodItem, FoodCreateDto>().ReverseMap();
112+
});
113+
114+
app.UseMvc();
115+
121116
app.UseSwagger();
122117
app.UseSwaggerUI(
123118
options =>
@@ -129,16 +124,28 @@ public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory,
129124
description.GroupName.ToUpperInvariant());
130125
}
131126
});
127+
}
128+
}
132129

133-
app.UseCors("AllowAllOrigins");
134-
AutoMapper.Mapper.Initialize(mapper =>
135-
{
136-
mapper.CreateMap<FoodItem, FoodItemDto>().ReverseMap();
137-
mapper.CreateMap<FoodItem, FoodUpdateDto>().ReverseMap();
138-
mapper.CreateMap<FoodItem, FoodCreateDto>().ReverseMap();
139-
});
130+
public class ConfigureSwaggerOptions : IConfigureOptions<SwaggerGenOptions>
131+
{
132+
readonly IApiVersionDescriptionProvider provider;
140133

141-
app.UseMvc();
134+
public ConfigureSwaggerOptions(IApiVersionDescriptionProvider provider) =>
135+
this.provider = provider;
136+
137+
public void Configure(SwaggerGenOptions options)
138+
{
139+
foreach (var description in provider.ApiVersionDescriptions)
140+
{
141+
options.SwaggerDoc(
142+
description.GroupName,
143+
new Info()
144+
{
145+
Title = $"Sample API {description.ApiVersion}",
146+
Version = description.ApiVersion.ToString(),
147+
});
148+
}
142149
}
143150
}
144151
}

0 commit comments

Comments
 (0)