Browse Source

Fixes for OpenAPI.

pull/837/head
Sebastian 4 years ago
parent
commit
4cb7a4b6f8
  1. 6
      backend/src/Squidex/Areas/Api/Controllers/Contents/ContentOpenApiController.cs
  2. 9
      backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/Builder.cs
  3. 4
      backend/src/Squidex/Areas/Api/Controllers/Contents/Generator/SchemasOpenApiGenerator.cs

6
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");
}

9
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)
{
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", _ =>

4
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<OpenApiDocument> GenerateAsync(HttpContext httpContext, IAppEntity app, IEnumerable<ISchemaEntity> schemas, bool flat = false)
public async Task<OpenApiDocument> GenerateAsync(HttpContext httpContext, IAppEntity app, IEnumerable<ISchemaEntity> 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());

Loading…
Cancel
Save