/// <inheritdoc/> protected override void SetResponses(OpenApiOperation operation) { OpenApiSchema schema = new OpenApiSchema { Type = "string" }; operation.Responses = new OpenApiResponses { { Context.Settings.UseSuccessStatusCodeRange?Constants.StatusCodeClass2XX : Constants.StatusCode200, new OpenApiResponse { Description = "Retrieved metadata document", Content = new Dictionary <string, OpenApiMediaType> { { Constants.ApplicationXmlMediaType, new OpenApiMediaType { Schema = schema } } } } } }; operation.AddErrorResponses(Context.Settings, false); base.SetResponses(operation); }
/// <inheritdoc/> protected override void SetResponses(OpenApiOperation operation) { OpenApiSchema schema = null; IDictionary <string, OpenApiLink> links = null; if (Context.Settings.EnableDerivedTypesReferencesForResponses) { schema = EdmModelHelper.GetDerivedTypesReferenceSchema(Singleton.EntityType(), Context.Model); } if (Context.Settings.ShowLinks) { links = Context.CreateLinks(entityType: Singleton.EntityType(), entityName: Singleton.Name, entityKind: Singleton.ContainerElementKind.ToString(), path: Path, parameters: PathParameters); } if (schema == null) { schema = new OpenApiSchema { UnresolvedReference = true, Reference = new OpenApiReference { Type = ReferenceType.Schema, Id = Singleton.EntityType().FullName() } }; } operation.Responses = new OpenApiResponses { { Context.Settings.UseSuccessStatusCodeRange?Constants.StatusCodeClass2XX : Constants.StatusCode200, new OpenApiResponse { Description = "Retrieved entity", Content = new Dictionary <string, OpenApiMediaType> { { Constants.ApplicationJsonMediaType, new OpenApiMediaType { Schema = schema } } }, Links = links } } }; operation.AddErrorResponses(Context.Settings, false); base.SetResponses(operation); }
/// <inheritdoc/> protected override void SetResponses(OpenApiOperation operation) { operation.Responses = new OpenApiResponses { { Constants.StatusCode204, new OpenApiResponse { Description = "Success" } } }; operation.AddErrorResponses(Context.Settings, false); base.SetResponses(operation); }
/// <inheritdoc/> protected override void SetResponses(OpenApiOperation operation) { operation.Responses = new OpenApiResponses { { Context.Settings.UseSuccessStatusCodeRange?Constants.StatusCodeClass2XX : Constants.StatusCode200, new OpenApiResponse { Description = "Retrieved media content", Content = GetContentDescription() } } }; operation.AddErrorResponses(Context.Settings, false); base.SetResponses(operation); }
/// <inheritdoc/> protected override void SetResponses(OpenApiOperation operation) { OpenApiSchema schema = null; if (Context.Settings.EnableDerivedTypesReferencesForResponses) { schema = EdmModelHelper.GetDerivedTypesReferenceSchema(NavigationProperty.ToEntityType(), Context.Model); } if (schema == null) { schema = new OpenApiSchema { UnresolvedReference = true, Reference = new OpenApiReference { Type = ReferenceType.Schema, Id = NavigationProperty.ToEntityType().FullName() } }; } operation.Responses = new OpenApiResponses { { Context.Settings.UseSuccessStatusCodeRange?Constants.StatusCodeClass2XX : Constants.StatusCode201, new OpenApiResponse { Description = "Created navigation property.", Content = new Dictionary <string, OpenApiMediaType> { { Constants.ApplicationJsonMediaType, new OpenApiMediaType { Schema = schema } } } } } }; operation.AddErrorResponses(Context.Settings, false); base.SetResponses(operation); }
/// <inheritdoc/> protected override void SetResponses(OpenApiOperation operation) { operation.Responses = new OpenApiResponses { { Context.Settings.UseSuccessStatusCodeRange?Constants.StatusCodeClass2XX : Constants.StatusCode200, new OpenApiResponse { UnresolvedReference = true, Reference = new OpenApiReference() { Type = ReferenceType.Response, Id = Constants.DollarCountSchemaName } } } }; operation.AddErrorResponses(Context.Settings, false); base.SetResponses(operation); }
/// <inheritdoc/> protected override void SetResponses(OpenApiOperation operation) { operation.Responses = new OpenApiResponses { { Context.Settings.UseSuccessStatusCodeRange?Constants.StatusCodeClass2XX : Constants.StatusCode200, new OpenApiResponse { UnresolvedReference = true, Reference = new OpenApiReference() { Type = ReferenceType.Response, Id = $"{EntitySet.EntityType().FullName()}{Constants.CollectionSchemaSuffix}" }, } } }; operation.AddErrorResponses(Context.Settings, false); base.SetResponses(operation); }
public void AddsErrorResponses(bool addNoContent, bool errorAsDefault) { // Arrange var settings = new OpenApiConvertSettings { ErrorResponsesAsDefault = errorAsDefault, }; var operation = new OpenApiOperation(); // Act operation.AddErrorResponses(settings, addNoContent); // Assert Assert.NotNull(operation.Responses); Assert.Equal((errorAsDefault ? 1 : 2) + (addNoContent ? 1 : 0), operation.Responses.Count); if (addNoContent) { Assert.True(operation.Responses.ContainsKey("204")); } else { Assert.False(operation.Responses.ContainsKey("204")); } if (errorAsDefault) { Assert.True(operation.Responses.ContainsKey("default")); Assert.False(operation.Responses.ContainsKey("4XX")); Assert.False(operation.Responses.ContainsKey("5XX")); } else { Assert.False(operation.Responses.ContainsKey("default")); Assert.True(operation.Responses.ContainsKey("4XX")); Assert.True(operation.Responses.ContainsKey("5XX")); } }
/// <inheritdoc/> protected override void SetResponses(OpenApiOperation operation) { operation.AddErrorResponses(Context.Settings, true); base.SetResponses(operation); }
/// <inheritdoc/> protected override void SetResponses(OpenApiOperation operation) { IDictionary <string, OpenApiLink> links = null; if (Context.Settings.ShowLinks) { string operationId = GetOperationId(); links = Context.CreateLinks(entityType: NavigationProperty.ToEntityType(), entityName: NavigationProperty.Name, entityKind: NavigationProperty.PropertyKind.ToString(), path: Path, parameters: PathParameters, navPropOperationId: operationId); } if (!LastSegmentIsKeySegment && NavigationProperty.TargetMultiplicity() == EdmMultiplicity.Many) { operation.Responses = new OpenApiResponses { { Context.Settings.UseSuccessStatusCodeRange?Constants.StatusCodeClass2XX : Constants.StatusCode200, new OpenApiResponse { UnresolvedReference = true, Reference = new OpenApiReference() { Type = ReferenceType.Response, Id = $"{NavigationProperty.ToEntityType().FullName()}{Constants.CollectionSchemaSuffix}" }, Links = links } } }; } else { OpenApiSchema schema = null; var entityType = NavigationProperty.ToEntityType(); if (Context.Settings.EnableDerivedTypesReferencesForResponses) { schema = EdmModelHelper.GetDerivedTypesReferenceSchema(entityType, Context.Model); } if (schema == null) { schema = new OpenApiSchema { UnresolvedReference = true, Reference = new OpenApiReference { Type = ReferenceType.Schema, Id = entityType.FullName() } }; } operation.Responses = new OpenApiResponses { { Context.Settings.UseSuccessStatusCodeRange?Constants.StatusCodeClass2XX : Constants.StatusCode200, new OpenApiResponse { Description = "Retrieved navigation property", Content = new Dictionary <string, OpenApiMediaType> { { Constants.ApplicationJsonMediaType, new OpenApiMediaType { Schema = schema } } }, Links = links } } }; } operation.AddErrorResponses(Context.Settings, false); base.SetResponses(operation); }
/// <inheritdoc/> protected override void SetResponses(OpenApiOperation operation) { if (NavigationProperty.TargetMultiplicity() == EdmMultiplicity.Many) { operation.Responses = new OpenApiResponses { { Context.Settings.UseSuccessStatusCodeRange?Constants.StatusCodeClass2XX : Constants.StatusCode200, new OpenApiResponse { UnresolvedReference = true, Reference = new OpenApiReference { Type = ReferenceType.Response, Id = $"String{Constants.CollectionSchemaSuffix}" }, } } }; } else { OpenApiSchema schema = new() { // $ref returns string for the Uri? Type = "string" }; IDictionary <string, OpenApiLink> links = null; if (Context.Settings.ShowLinks) { string operationId = GetOperationId(); links = Context.CreateLinks(entityType: NavigationProperty.ToEntityType(), entityName: NavigationProperty.Name, entityKind: NavigationProperty.PropertyKind.ToString(), parameters: PathParameters, path: Path, navPropOperationId: operationId); } operation.Responses = new OpenApiResponses { { Context.Settings.UseSuccessStatusCodeRange?Constants.StatusCodeClass2XX : Constants.StatusCode200, new OpenApiResponse { Description = "Retrieved navigation property link", Content = new Dictionary <string, OpenApiMediaType> { { Constants.ApplicationJsonMediaType, new OpenApiMediaType { Schema = schema } } }, Links = links } } }; } operation.AddErrorResponses(Context.Settings, false); base.SetResponses(operation); }