diff --git a/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/DNTFrameworkCoreTemplateAPI.API.csproj b/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/DNTFrameworkCoreTemplateAPI.API.csproj
index f309da2..0210b3c 100644
--- a/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/DNTFrameworkCoreTemplateAPI.API.csproj
+++ b/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/DNTFrameworkCoreTemplateAPI.API.csproj
@@ -10,6 +10,8 @@
+
+
diff --git a/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Properties/launchSettings.json b/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Properties/launchSettings.json
index 89a30da..41c14cd 100644
--- a/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Properties/launchSettings.json
+++ b/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Properties/launchSettings.json
@@ -1,18 +1,18 @@
-{
- "$schema": "http://json.schemastore.org/launchsettings.json",
+{
"iisSettings": {
- "windowsAuthentication": false,
- "anonymousAuthentication": true,
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:43573",
"sslPort": 44365
}
},
+ "$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
- "launchUrl": "api/",
+ "launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
@@ -21,10 +21,10 @@
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "api/",
- "applicationUrl": "https://localhost:6001;http://localhost:6000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
- }
+ },
+ "applicationUrl": "https://localhost:6001;http://localhost:6000"
}
}
}
\ No newline at end of file
diff --git a/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Registry.cs b/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Registry.cs
index ad99a51..776d4f8 100644
--- a/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Registry.cs
+++ b/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Registry.cs
@@ -55,6 +55,7 @@ public static void AddWeb(this IServiceCollection services)
options.UseDefaultFilteredPagedQueryModelBinder();
options.Filters.Add();
})
+ .AddApiExplorer()
.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
diff --git a/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Startup.cs b/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Startup.cs
index f236614..8bc80da 100644
--- a/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Startup.cs
+++ b/DNTFrameworkCoreTemplateAPI/src/DNTFrameworkCoreTemplateAPI.API/Startup.cs
@@ -17,6 +17,9 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.IdentityModel.Tokens;
using Newtonsoft.Json;
+using Swashbuckle.AspNetCore.SwaggerUI;
+using Swashbuckle.AspNetCore.Swagger;
+using System.Collections.Generic;
namespace DNTFrameworkCoreTemplateAPI.API
{
@@ -63,6 +66,39 @@ public void ConfigureServices(IServiceCollection services)
services.AddResources();
services.AddWeb();
services.AddJwtAuthentication(Configuration);
+
+ services.AddSwaggerGen(c =>
+ {
+ c.SwaggerDoc("api", new Info
+ {
+ Version = "api",
+ Title = "Services",
+ Description = "DNTFramework API Services",
+ Contact = new Contact
+ {
+ Email = "gholamrezarabbal@gmail.com",
+ Name = "GholamReza Rabbal",
+ Url = "http://www.dotnettips.info/user/%D8%BA%D9%84%D8%A7%D9%85%D8%B1%D8%B6%D8%A7%20%D8%B1%D8%A8%D8%A7%D9%84"
+ }
+ });
+
+ c.AddSecurityDefinition("Bearer", new ApiKeyScheme()
+ {
+ In = "header",
+ Description = "JWT Authorization header using the Bearer scheme. Example: \"bearer {token}\"",
+ Name = "Authorization",
+ Type = "apiKey"
+ });
+
+ c.AddSecurityRequirement(new Dictionary>
+ {
+ {"Bearer", new string[] { }},
+ {"oauth2", new string[] { }}
+ });
+
+ c.EnableAnnotations();
+
+ });
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
@@ -116,6 +152,21 @@ await context.Response.WriteAsync(JsonConvert.SerializeObject(new
app.UseMvc();
app.UseSignalR(routes => { routes.MapHub("/api/notificationhub"); });
app.UseEFSecondLevelCache();
+
+ app.UseSwagger(c =>
+ {
+ c.PreSerializeFilters.Add((swaggerDoc, httpReq) => swaggerDoc.Host = httpReq.Host.Value);
+ c.RouteTemplate = "api-docs/{documentName}/swagger.json";
+
+ });
+
+ app.UseSwaggerUI(c =>
+ {
+ c.ShowExtensions();
+ c.SwaggerEndpoint($"/api-docs/api/swagger.json", "api");
+ c.DocExpansion(DocExpansion.None);
+ c.DocumentTitle = "Services";
+ });
}
}
}
\ No newline at end of file