Browse Source

Schema Version bumped.

pull/65/head
Sebastian Stehle 9 years ago
parent
commit
d2507de73e
  1. 4
      src/Squidex.Core/Squidex.Core.csproj
  2. 2
      src/Squidex.Events/Squidex.Events.csproj
  3. 2
      src/Squidex.Infrastructure/Squidex.Infrastructure.csproj
  4. 2
      src/Squidex.Read/Squidex.Read.csproj
  5. 2
      src/Squidex.Write/Squidex.Write.csproj
  6. 12
      src/Squidex/Config/Swagger/SwaggerServices.cs
  7. 2
      src/Squidex/Config/Swagger/SwaggerUsage.cs
  8. 13
      src/Squidex/Config/Swagger/XmlResponseTypesProcessor.cs
  9. 13
      src/Squidex/Controllers/ContentApi/Generator/SchemasSwaggerGenerator.cs
  10. 4
      src/Squidex/Squidex.csproj

4
src/Squidex.Core/Squidex.Core.csproj

@ -13,8 +13,8 @@
<ItemGroup>
<PackageReference Include="protobuf-net" Version="2.2.1" />
<PackageReference Include="System.Collections.Immutable" Version="1.3.1" />
<PackageReference Include="NodaTime" Version="2.0.2" />
<PackageReference Include="NJsonSchema" Version="8.33.6323.36213" />
<PackageReference Include="NodaTime" Version="2.0.3" />
<PackageReference Include="NJsonSchema" Version="9.1.11" />
<PackageReference Include="System.ValueTuple" Version="4.3.1" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.6' ">

2
src/Squidex.Events/Squidex.Events.csproj

@ -12,6 +12,6 @@
<ProjectReference Include="..\Squidex.Infrastructure\Squidex.Infrastructure.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NodaTime" Version="2.0.2" />
<PackageReference Include="NodaTime" Version="2.0.3" />
</ItemGroup>
</Project>

2
src/Squidex.Infrastructure/Squidex.Infrastructure.csproj

@ -12,7 +12,7 @@
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="1.1.2" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.2" />
<PackageReference Include="NodaTime" Version="2.0.2" />
<PackageReference Include="NodaTime" Version="2.0.3" />
<PackageReference Include="System.Linq" Version="4.3.0" />
<PackageReference Include="System.Reactive" Version="3.1.1" />
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.3.0" />

2
src/Squidex.Read/Squidex.Read.csproj

@ -15,7 +15,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="1.1.2" />
<PackageReference Include="NodaTime" Version="2.0.2" />
<PackageReference Include="NodaTime" Version="2.0.3" />
<PackageReference Include="System.Linq.Queryable" Version="4.3.0" />
</ItemGroup>
</Project>

2
src/Squidex.Write/Squidex.Write.csproj

@ -14,6 +14,6 @@
<ProjectReference Include="..\Squidex.Read\Squidex.Read.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NodaTime" Version="2.0.2" />
<PackageReference Include="NodaTime" Version="2.0.3" />
</ItemGroup>
</Project>

12
src/Squidex/Config/Swagger/SwaggerServices.cs

@ -24,12 +24,12 @@ namespace Squidex.Config.Swagger
{
public static void AddMySwaggerSettings(this IServiceCollection services)
{
services.AddSingleton(typeof(SwaggerOwinSettings), s =>
services.AddSingleton(typeof(SwaggerSettings), s =>
{
var urlOptions = s.GetService<IOptions<MyUrlsOptions>>().Value;
var settings =
new SwaggerOwinSettings { Title = "Squidex API Specification", IsAspNetCore = false }
new SwaggerSettings { Title = "Squidex API Specification", IsAspNetCore = false }
.ConfigurePaths(urlOptions)
.ConfigureSchemaSettings()
.ConfigureIdentity(urlOptions);
@ -40,7 +40,7 @@ namespace Squidex.Config.Swagger
services.AddTransient<SchemasSwaggerGenerator>();
}
private static SwaggerOwinSettings ConfigureIdentity(this SwaggerOwinSettings settings, MyUrlsOptions urlOptions)
private static SwaggerSettings ConfigureIdentity(this SwaggerSettings settings, MyUrlsOptions urlOptions)
{
settings.DocumentProcessors.Add(
new SecurityDefinitionAppender(Constants.SecurityDefinition, SwaggerHelper.CreateOAuthSchema(urlOptions)));
@ -50,7 +50,7 @@ namespace Squidex.Config.Swagger
return settings;
}
private static SwaggerOwinSettings ConfigurePaths(this SwaggerOwinSettings settings, MyUrlsOptions urlOptions)
private static SwaggerSettings ConfigurePaths(this SwaggerSettings settings, MyUrlsOptions urlOptions)
{
settings.SwaggerRoute = $"{Constants.ApiPrefix}/swagger/v1/swagger.json";
@ -68,7 +68,7 @@ namespace Squidex.Config.Swagger
return settings;
}
private static SwaggerOwinSettings ConfigureSchemaSettings(this SwaggerOwinSettings settings)
private static SwaggerSettings ConfigureSchemaSettings(this SwaggerSettings settings)
{
settings.DefaultEnumHandling = EnumHandling.String;
settings.DefaultPropertyNameHandling = PropertyNameHandling.CamelCase;
@ -87,7 +87,7 @@ namespace Squidex.Config.Swagger
settings.DocumentProcessors.Add(new XmlTagProcessor());
settings.OperationProcessors.Add(new XmlTagProcessor());
settings.OperationProcessors.Add(new XmlResponseTypesProcessor());
settings.OperationProcessors.Add(new XmlResponseTypesProcessor(settings));
return settings;
}

2
src/Squidex/Config/Swagger/SwaggerUsage.cs

@ -17,7 +17,7 @@ namespace Squidex.Config.Swagger
{
public static void UseMySwagger(this IApplicationBuilder app)
{
var settings = app.ApplicationServices.GetService<SwaggerOwinSettings>();
var settings = app.ApplicationServices.GetService<SwaggerSettings>();
app.UseSwagger(typeof(SwaggerUsage).GetTypeInfo().Assembly, settings);
}

13
src/Squidex/Config/Swagger/XmlResponseTypesProcessor.cs

@ -13,6 +13,7 @@ using NJsonSchema;
using NJsonSchema.Generation;
using NJsonSchema.Infrastructure;
using NSwag;
using NSwag.AspNetCore;
using NSwag.SwaggerGeneration.Processors;
using NSwag.SwaggerGeneration.Processors.Contexts;
using Squidex.Controllers.Api;
@ -25,6 +26,13 @@ namespace Squidex.Config.Swagger
{
private static readonly Regex ResponseRegex = new Regex("(?<Code>[0-9]{3}) => (?<Description>.*)", RegexOptions.Compiled);
private readonly SwaggerSettings swaggerSettings;
public XmlResponseTypesProcessor(SwaggerSettings swaggerSettings)
{
this.swaggerSettings = swaggerSettings;
}
public async Task<bool> ProcessAsync(OperationProcessorContext context)
{
var hasOkResponse = false;
@ -62,7 +70,7 @@ namespace Squidex.Config.Swagger
return true;
}
private static async Task AddInternalErrorResponseAsync(OperationProcessorContext context, SwaggerOperation operation)
private async Task AddInternalErrorResponseAsync(OperationProcessorContext context, SwaggerOperation operation)
{
if (operation.Responses.ContainsKey("500"))
{
@ -70,7 +78,8 @@ namespace Squidex.Config.Swagger
}
var errorType = typeof(ErrorDto);
var errorSchema = JsonObjectTypeDescription.FromType(errorType, new Attribute[0], EnumHandling.String);
var errorContract = swaggerSettings.ActualContractResolver.ResolveContract(errorType);
var errorSchema = JsonObjectTypeDescription.FromType(errorType, errorContract, new Attribute[0], EnumHandling.String);
var response = new SwaggerResponse { Description = "Operation failed." };

13
src/Squidex/Controllers/ContentApi/Generator/SchemasSwaggerGenerator.cs

@ -36,6 +36,7 @@ namespace Squidex.Controllers.ContentApi.Generator
{
private readonly SwaggerJsonSchemaGenerator schemaGenerator;
private readonly SwaggerDocument document = new SwaggerDocument { Tags = new List<SwaggerTag>() };
private readonly SwaggerSettings swaggerSettings;
private readonly HttpContext context;
private readonly JsonSchemaResolver schemaResolver;
private readonly SwaggerGenerator swaggerGenerator;
@ -46,16 +47,17 @@ namespace Squidex.Controllers.ContentApi.Generator
private string appBasePath;
private IAppEntity app;
public SchemasSwaggerGenerator(IHttpContextAccessor context, SwaggerOwinSettings swaggerSettings, IOptions<MyUrlsOptions> urlOptions)
public SchemasSwaggerGenerator(IHttpContextAccessor context, SwaggerSettings settings, IOptions<MyUrlsOptions> urlOptions)
{
this.context = context.HttpContext;
this.urlOptions = urlOptions.Value;
schemaGenerator = new SwaggerJsonSchemaGenerator(swaggerSettings);
schemaResolver = new SwaggerSchemaResolver(document, swaggerSettings);
schemaGenerator = new SwaggerJsonSchemaGenerator(settings);
schemaResolver = new SwaggerSchemaResolver(document, settings);
swaggerGenerator = new SwaggerGenerator(schemaGenerator, swaggerSettings, schemaResolver);
swaggerSettings = settings;
swaggerGenerator = new SwaggerGenerator(schemaGenerator, settings, schemaResolver);
schemaBodyDescription = SwaggerHelper.LoadDocs("schemabody");
schemaQueryDescription = SwaggerHelper.LoadDocs("schemaquery");
@ -130,7 +132,8 @@ namespace Squidex.Controllers.ContentApi.Generator
private async Task GenerateBasicSchemas()
{
var errorType = typeof(ErrorDto);
var errorSchema = JsonObjectTypeDescription.FromType(errorType, new Attribute[0], EnumHandling.String);
var errorContract = swaggerSettings.ActualContractResolver.ResolveContract(errorType);
var errorSchema = JsonObjectTypeDescription.FromType(errorType, errorContract, new Attribute[0], EnumHandling.String);
errorDtoSchema = await swaggerGenerator.GenerateAndAppendSchemaFromTypeAsync(errorType, errorSchema.IsNullable, null);
}

4
src/Squidex/Squidex.csproj

@ -64,9 +64,9 @@
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.1.2" />
<PackageReference Include="MongoDB.Driver" Version="2.4.4" />
<PackageReference Include="NJsonSchema" Version="8.33.6323.36213" />
<PackageReference Include="NJsonSchema" Version="9.1.11" />
<PackageReference Include="NodaTime.Serialization.JsonNet" Version="2.0.0" />
<PackageReference Include="NSwag.AspNetCore" Version="10.6.0" />
<PackageReference Include="NSwag.AspNetCore" Version="11.0.0" />
<PackageReference Include="OpenCover" Version="4.6.519" />
<PackageReference Include="ReportGenerator" Version="2.5.8" />
<PackageReference Include="StackExchange.Redis.StrongName" Version="1.2.3" />

Loading…
Cancel
Save