Skip to content

Commit cdac2c7

Browse files
committed
[add] examples
1 parent 33fc8dd commit cdac2c7

File tree

4 files changed

+74
-11
lines changed

4 files changed

+74
-11
lines changed

src/TesterApp/Controllers/Api/v1/Groups/GetMultipleController.cs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,21 @@ public class GetMultipleController : Simplify.Web.Controller
1515
{
1616
public override ControllerResponse Invoke()
1717
{
18-
var items = new List<GroupViewModel>
18+
var languageCode = Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;
19+
20+
var items = new List<GroupViewModel>();
21+
22+
switch (languageCode)
1923
{
20-
new GroupViewModel
21-
{
22-
Name = "Group 1"
23-
},
24-
new GroupViewModel
25-
{
26-
Name = "Group 2"
27-
}
28-
};
24+
case "ru":
25+
items.Add(new() {Name = "Группа 1"});
26+
items.Add(new() {Name = "Группа 2"});
27+
break;
28+
default:
29+
items.Add(new() {Name = "Group 1"});
30+
items.Add(new() {Name = "Group 2"});
31+
break;
32+
}
2933

3034
// Items retrieve
3135

src/TesterApp/Controllers/Api/v1/Users/CreateController.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
using Microsoft.AspNetCore.Mvc;
22
using Simplify.Web;
33
using Simplify.Web.Attributes;
4+
using Simplify.Web.Swagger;
45
using TesterApp.ViewModels;
56

67
namespace TesterApp.Controllers.Api.v1.Users;
78

89
[Post("/api/v1/users")]
910
[ApiVersion("1.0")]
1011
[Produces("application/text")]
12+
[ProducesRequestBody(typeof(UserAddViewModel))]
1113
public class CreateController : AsyncController<UserAddViewModel>
1214
{
1315
public override async Task<ControllerResponse> Invoke()

src/TesterApp/Program.cs

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using Microsoft.OpenApi.Any;
2+
using Microsoft.OpenApi.Models;
13
using Simplify.DI;
24
using Simplify.Web;
35
using Simplify.Web.Json.Model.Binding;
@@ -14,7 +16,57 @@
1416
.Verify();
1517

1618
builder.Services.AddEndpointsApiExplorer()
17-
.AddSwaggerGen(x => x.AddSimplifyWebSwagger());
19+
.AddSwaggerGen(x => {
20+
x.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
21+
{
22+
Name = "Authorization",
23+
In = ParameterLocation.Header,
24+
Type = SecuritySchemeType.ApiKey,
25+
Scheme = "Bearer",
26+
BearerFormat = "JWT",
27+
Description = "Input your Bearer token in this format - Bearer {your token here} to access this API",
28+
});
29+
x.AddSecurityRequirement(new OpenApiSecurityRequirement
30+
{
31+
{
32+
new OpenApiSecurityScheme
33+
{
34+
Reference = new OpenApiReference
35+
{
36+
Type = ReferenceType.SecurityScheme,
37+
Id = "Bearer",
38+
},
39+
Scheme = "Bearer",
40+
Name = "Bearer",
41+
In = ParameterLocation.Header,
42+
},
43+
new List<string>()
44+
}
45+
});
46+
47+
var args = new SimplifyWebSwaggerArgs();
48+
var parameter = new OpenApiParameter{
49+
Name = "Accept-Language",
50+
In = ParameterLocation.Header,
51+
Description = "Language preference for the response.",
52+
Required = true,
53+
AllowEmptyValue = true,
54+
Example = new OpenApiString("en-US"),
55+
Schema = new OpenApiSchema
56+
{
57+
Default = new OpenApiString("en-US"),
58+
Enum = new List<IOpenApiAny>
59+
{
60+
new OpenApiString("en-US"),
61+
new OpenApiString("ru-RU"),
62+
}
63+
}
64+
};
65+
66+
args.Parameters.Add(parameter);
67+
68+
x.AddSimplifyWebSwagger(args);
69+
});
1870

1971
// Configuration
2072

src/TesterApp/appsettings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"SimplifyWebSettings": {
3+
"AcceptBrowserLanguage": true
4+
}
5+
}

0 commit comments

Comments
 (0)