public OperationsBuilder Shared() { var dataSchema = RegisterReference("DataDto", _ => { return(JsonSchema.CreateAnySchema()); }); var contentSchema = RegisterReference("ContentDto", _ => { return(ContentJsonSchemaBuilder.BuildSchema(dataSchema, true)); }); var contentsSchema = RegisterReference("ContentResultDto", _ => { return(BuildResult(contentSchema)); }); var path = $"/content/{AppName}"; var builder = new OperationsBuilder { ContentSchema = contentSchema, ContentsSchema = contentsSchema, DataSchema = dataSchema, Path = path, Parent = this, SchemaDisplayName = "__Shared", SchemaName = "__Shared", SchemaTypeName = "__Shared" }; builder.AddTag("API endpoints for operations across all schemas."); return(builder); }
public OperationsBuilder Shared() { var dataSchema = ResolveSchema("DataDto", () => { return(JsonSchema.CreateAnySchema()); }); var contentSchema = ResolveSchema($"ContentDto", () => { return(ContentJsonSchemaBuilder.BuildSchema("Shared", dataSchema, true)); }); var path = $"/content/{AppName}"; var builder = new OperationsBuilder { ContentSchema = contentSchema, DataSchema = dataSchema, Path = path, Parent = this, SchemaDisplayName = "__Shared", SchemaName = "__Shared", SchemaTypeName = "__Shared", }; var description = "API endpoints for operations across all schemas."; Document.Tags.Add(new OpenApiTag { Name = "__Shared", Description = description }); return(builder); }
private static JsonSchema BuildJsonSchema(Schema schema, IAppEntity app, ResolvedComponents components, bool withHiddenFields) { var dataSchema = schema.BuildJsonSchema(app.PartitionResolver(), components, null, withHiddenFields); return(ContentJsonSchemaBuilder.BuildSchema(dataSchema, false, true)); }
public OperationsBuilder Schema(Schema schema, bool flat) { var typeName = schema.TypeName(); var displayName = schema.DisplayName(); var dataSchema = ResolveSchema($"{typeName}DataDto", () => { return(schema.BuildDynamicJsonSchema(ResolveSchema)); }); var contentSchema = ResolveSchema($"{typeName}ContentDto", () => { var contentDataSchema = dataSchema; if (flat) { contentDataSchema = ResolveSchema($"{typeName}FlatDataDto", () => { return(schema.BuildFlatJsonSchema(ResolveSchema)); }); } return(ContentJsonSchemaBuilder.BuildSchema(displayName, contentDataSchema, true)); }); var contentsSchema = ResolveSchema($"{typeName}ContentResultDto", () => { return(BuildResult(contentSchema)); }); var path = $"/content/{AppName}/{schema.Name}"; var builder = new OperationsBuilder { ContentSchema = contentSchema, ContentsSchema = contentsSchema, DataSchema = dataSchema, Path = path, Parent = this, SchemaDisplayName = displayName, SchemaName = schema.Name, SchemaTypeName = typeName }; var description = builder.FormatText("API endpoints for schema content items."); Document.Tags.Add(new OpenApiTag { Name = displayName, Description = description }); return(builder); }
public OperationsBuilder Schema(Schema schema, PartitionResolver partitionResolver, ResolvedComponents components, bool flat) { var typeName = schema.TypeName(); var dataSchema = RegisterReference($"{typeName}DataDto", _ => { return(schema.BuildJsonSchemaDynamic(partitionResolver, components, CreateReference, false, true)); }); var flatDataSchema = RegisterReference($"{typeName}FlatDataDto", _ => { return(schema.BuildJsonSchemaFlat(partitionResolver, components, CreateReference, false, true)); }); var contentSchema = RegisterReference($"{typeName}ContentDto", _ => { return(ContentJsonSchemaBuilder.BuildSchema(flat ? flatDataSchema : dataSchema, true)); }); var contentsSchema = RegisterReference($"{typeName}ContentResultDto", _ => { return(BuildResult(contentSchema)); }); var path = $"/content/{AppName}/{schema.Name}"; var builder = new OperationsBuilder { ContentSchema = contentSchema, ContentsSchema = contentsSchema, DataSchema = dataSchema, Path = path, Parent = this, SchemaDisplayName = schema.DisplayName(), SchemaName = schema.Name, SchemaTypeName = typeName }; builder.AddTag("API endpoints for [schema] content items."); return(builder); }
private static JsonSchema BuildJsonSchema(Schema schema, IAppEntity app, bool withHiddenFields) { var dataSchema = schema.BuildJsonSchema(app.PartitionResolver(), withHiddenFields); return(ContentJsonSchemaBuilder.BuildSchema(schema.DisplayName(), dataSchema, false, true)); }