Skip to content

Commit bbf2ae1

Browse files
authored
Merge pull request danielgerlag#290 from hieuxlu/master
chore(sample): Improve WebApiSample, adding SwaggerUI, fix invalid cast from JObject
2 parents 2b2a8a6 + ba365ad commit bbf2ae1

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

src/samples/WebApiSample/WebApiSample/Controllers/EventsController.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Microsoft.AspNetCore.Mvc;
66
using Microsoft.Extensions.Logging;
77
using Newtonsoft.Json.Linq;
8+
using WebApiSample.Workflows;
89
using WorkflowCore.Interface;
910
using WorkflowCore.Models;
1011

@@ -22,9 +23,9 @@ public EventsController(IWorkflowController workflowService)
2223
}
2324

2425
[HttpPost("{eventName}/{eventKey}")]
25-
public async Task<IActionResult> Post(string eventName, string eventKey, [FromBody]object eventData)
26+
public async Task<IActionResult> Post(string eventName, string eventKey, [FromBody]MyDataClass eventData)
2627
{
27-
await _workflowService.PublishEvent(eventName, eventKey, eventData);
28+
await _workflowService.PublishEvent(eventName, eventKey, eventData.Value1);
2829
return Ok();
2930
}
3031

src/samples/WebApiSample/WebApiSample/Properties/launchSettings.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@
1212
"IIS Express": {
1313
"commandName": "IISExpress",
1414
"launchBrowser": true,
15-
"launchUrl": "api/values",
15+
"launchUrl": "swagger",
1616
"environmentVariables": {
1717
"ASPNETCORE_ENVIRONMENT": "Development"
1818
}
1919
},
2020
"WebApiSample": {
2121
"commandName": "Project",
2222
"launchBrowser": true,
23-
"launchUrl": "api/values",
23+
"launchUrl": "swagger",
2424
"environmentVariables": {
2525
"ASPNETCORE_ENVIRONMENT": "Development"
2626
},
@@ -29,7 +29,7 @@
2929
"Docker": {
3030
"commandName": "Docker",
3131
"launchBrowser": true,
32-
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/api/values"
32+
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger"
3333
}
3434
}
3535
}

src/samples/WebApiSample/WebApiSample/Startup.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using Microsoft.Extensions.Logging;
1111
using Microsoft.Extensions.Options;
1212
using Nest;
13+
using Swashbuckle.AspNetCore.Swagger;
1314
using WebApiSample.Workflows;
1415
using WorkflowCore.Interface;
1516

@@ -27,6 +28,13 @@ public Startup(IConfiguration configuration)
2728
public void ConfigureServices(IServiceCollection services)
2829
{
2930
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
31+
32+
// Register the Swagger generator, defining 1 or more Swagger documents
33+
services.AddSwaggerGen(c =>
34+
{
35+
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
36+
});
37+
3038
services.AddWorkflow(cfg =>
3139
{
3240
cfg.UseMongoDB(@"mongodb://mongo:27017", "workflow");
@@ -41,6 +49,16 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env)
4149
app.UseDeveloperExceptionPage();
4250
}
4351

52+
// Enable middleware to serve generated Swagger as a JSON endpoint.
53+
app.UseSwagger();
54+
55+
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
56+
// specifying the Swagger JSON endpoint.
57+
app.UseSwaggerUI(c =>
58+
{
59+
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
60+
});
61+
4462
app.UseMvc();
4563

4664
var host = app.ApplicationServices.GetService<IWorkflowHost>();

src/samples/WebApiSample/WebApiSample/WebApiSample.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk.Web">
1+
<Project Sdk="Microsoft.NET.Sdk.Web">
22

33
<PropertyGroup>
44
<TargetFramework>netcoreapp2.1</TargetFramework>
@@ -16,6 +16,7 @@
1616
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" />
1717
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.1" />
1818
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
19+
<PackageReference Include="Swashbuckle.AspNetCore" Version="4.0.1" />
1920
<PackageReference Include="WorkflowCore" Version="1.8.0" />
2021
<PackageReference Include="WorkflowCore.Persistence.MongoDB" Version="1.7.0" />
2122
<PackageReference Include="WorkflowCore.Providers.Elasticsearch" Version="1.8.0" />

0 commit comments

Comments
 (0)