diff --git a/backend/src/Squidex/Areas/Api/Controllers/Contents/ContentOpenApiController.cs b/backend/src/Squidex/Areas/Api/Controllers/Contents/ContentOpenApiController.cs index 1c82c6a83..1da7119d0 100644 --- a/backend/src/Squidex/Areas/Api/Controllers/Contents/ContentOpenApiController.cs +++ b/backend/src/Squidex/Areas/Api/Controllers/Contents/ContentOpenApiController.cs @@ -35,7 +35,7 @@ namespace Squidex.Areas.Api.Controllers.Contents { var vm = new DocsVM { - Specification = $"~/content/{app}/swagger/v1/swagger.json" + Specification = $"~/api/content/{app}/swagger/v1/swagger.json" }; return View(nameof(Docs), vm); @@ -49,7 +49,7 @@ namespace Squidex.Areas.Api.Controllers.Contents { var vm = new DocsVM { - Specification = $"~/content/{app}/flat/swagger/v1/swagger.json" + Specification = $"~/api/content/{app}/flat/swagger/v1/swagger.json" }; return View(nameof(Docs), vm); @@ -63,7 +63,7 @@ namespace Squidex.Areas.Api.Controllers.Contents { var schemas = await appProvider.GetSchemasAsync(AppId, HttpContext.RequestAborted); - var openApiDocument = await schemasOpenApiGenerator.GenerateAsync(HttpContext, App, schemas); + var openApiDocument = await schemasOpenApiGenerator.GenerateAsync(HttpContext, App, schemas, false); return Content(openApiDocument.ToJson(), "application/json"); } diff --git a/backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/Builder.cs b/backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/Builder.cs index c11772a7d..5d29b61b2 100644 --- a/backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/Builder.cs +++ b/backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/Builder.cs @@ -88,14 +88,19 @@ namespace Squidex.Areas.Api.Controllers.Contents.Generator return schema.BuildJsonSchemaDynamic(partitionResolver, components, CreateReference, false, true); }); - var flatDataSchema = RegisterReference($"{typeName}FlatDataDto", _ => + var contentDataSchema = dataSchema; + + if (flat) { - return schema.BuildJsonSchemaFlat(partitionResolver, components, CreateReference, false, true); - }); + contentDataSchema = RegisterReference($"{typeName}FlatDataDto", _ => + { + return schema.BuildJsonSchemaFlat(partitionResolver, components, CreateReference, false, true); + }); + } var contentSchema = RegisterReference($"{typeName}ContentDto", _ => { - return ContentJsonSchema.Build(flat ? flatDataSchema : dataSchema, true); + return ContentJsonSchema.Build(contentDataSchema, true); }); var contentsSchema = RegisterReference($"{typeName}ContentResultDto", _ => diff --git a/backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/SchemasOpenApiGenerator.cs b/backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/SchemasOpenApiGenerator.cs index ec7bea21f..4a43323ee 100644 --- a/backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/SchemasOpenApiGenerator.cs +++ b/backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/SchemasOpenApiGenerator.cs @@ -42,7 +42,7 @@ namespace Squidex.Areas.Api.Controllers.Contents.Generator this.requestCache = requestCache; } - public async Task GenerateAsync(HttpContext httpContext, IAppEntity app, IEnumerable schemas, bool flat = false) + public async Task GenerateAsync(HttpContext httpContext, IAppEntity app, IEnumerable schemas, bool flat) { var document = CreateApiDocument(httpContext, app); @@ -69,7 +69,7 @@ namespace Squidex.Areas.Api.Controllers.Contents.Generator { var components = await appProvider.GetComponentsAsync(schema, httpContext.RequestAborted); - GenerateSchemaOperations(builder.Schema(schema.SchemaDef, partitionResolver, components, true)); + GenerateSchemaOperations(builder.Schema(schema.SchemaDef, partitionResolver, components, flat)); } GenerateSharedOperations(builder.Shared());