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. 13
      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 var vm = new DocsVM
{ {
Specification = $"~/content/{app}/swagger/v1/swagger.json" Specification = $"~/api/content/{app}/swagger/v1/swagger.json"
}; };
return View(nameof(Docs), vm); return View(nameof(Docs), vm);
@ -49,7 +49,7 @@ namespace Squidex.Areas.Api.Controllers.Contents
{ {
var vm = new DocsVM 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); return View(nameof(Docs), vm);
@ -63,7 +63,7 @@ namespace Squidex.Areas.Api.Controllers.Contents
{ {
var schemas = await appProvider.GetSchemasAsync(AppId, HttpContext.RequestAborted); 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"); return Content(openApiDocument.ToJson(), "application/json");
} }

13
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); 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", _ => var contentSchema = RegisterReference($"{typeName}ContentDto", _ =>
{ {
return ContentJsonSchema.Build(flat ? flatDataSchema : dataSchema, true); return ContentJsonSchema.Build(contentDataSchema, true);
}); });
var contentsSchema = RegisterReference($"{typeName}ContentResultDto", _ => 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; 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); var document = CreateApiDocument(httpContext, app);
@ -69,7 +69,7 @@ namespace Squidex.Areas.Api.Controllers.Contents.Generator
{ {
var components = await appProvider.GetComponentsAsync(schema, httpContext.RequestAborted); 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()); GenerateSharedOperations(builder.Shared());

Loading…
Cancel
Save