public OpenApiDocument Generate(HttpContext httpContext, IAppEntity app, IEnumerable <ISchemaEntity> schemas) { document = NSwagHelper.CreateApiDocument(httpContext, urlOptions, app.Name); schemaGenerator = new OpenApiSchemaGenerator(settings); schemaResolver = new OpenApiSchemaResolver(document, settings); statusSchema = GenerateStatusSchema(); GenerateSchemasOperations(schemas, app); var context = new DocumentProcessorContext(document, Enumerable.Empty <Type>(), Enumerable.Empty <Type>(), schemaResolver, schemaGenerator, settings); foreach (var processor in settings.DocumentProcessors) { processor.Process(context); } return(document); }
private static void SetupDescription(OpenApiSecurityScheme securityScheme, string tokenUrl) { var securityDocs = NSwagHelper.LoadDocs("security"); var securityText = securityDocs.Replace("<TOKEN_URL>", tokenUrl); securityScheme.Description = securityText; }
public async Task <SwaggerDocument> Generate(HttpContext httpContext, IAppEntity app, IEnumerable <ISchemaEntity> schemas) { document = NSwagHelper.CreateApiDocument(httpContext, urlOptions, app.Name); schemaGenerator = new SwaggerJsonSchemaGenerator(settings); schemaResolver = new SwaggerSchemaResolver(document, settings); GenerateSchemasOperations(schemas, app); await GenerateDefaultErrorsAsync(); var context = new DocumentProcessorContext(document, Enumerable.Empty <Type>(), Enumerable.Empty <Type>(), schemaResolver, schemaGenerator, settings); foreach (var processor in settings.DocumentProcessors) { await processor.ProcessAsync(context); } return(document); }
private static SwaggerSecurityScheme CreateOAuthSchema(UrlsOptions urlOptions) { var securityScheme = new SwaggerSecurityScheme(); var tokenUrl = urlOptions.BuildUrl($"{Constants.IdentityServerPrefix}/connect/token", false); securityScheme.TokenUrl = tokenUrl; var securityDocs = NSwagHelper.LoadDocs("security"); var securityText = securityDocs.Replace("<TOKEN_URL>", tokenUrl); securityScheme.Description = securityText; securityScheme.Type = SwaggerSecuritySchemeType.OAuth2; securityScheme.Flow = SwaggerOAuth2Flow.Application; securityScheme.Scopes = new Dictionary <string, string> { [Constants.ApiScope] = "Read and write access to the API" }; return(securityScheme); }
static SchemaSwaggerGenerator() { SchemaBodyDescription = NSwagHelper.LoadDocs("schemabody"); SchemaQueryDescription = NSwagHelper.LoadDocs("schemaquery"); }