static JObject CreateSwaggerPathForOperationOfEntitySet(IEdmOperation operation, IEdmEntitySet entitySet) { JArray swaggerParameters = new JArray(); foreach (var parameter in operation.Parameters.Skip(1)) { swaggerParameters.Parameter(parameter.Name, operation is IEdmFunction ? "path" : "body", "parameter: " + parameter.Name, parameter.Type.Definition); } JObject swaggerResponses = new JObject(); if (operation.ReturnType == null) { swaggerResponses.Response("204", "Empty response"); } else { swaggerResponses.Response("200", "Response from " + operation.Name, operation.ReturnType.Definition); } JObject swaggerOperation = new JObject() .Summary("Call operation " + operation.Name) .Description("Call operation " + operation.Name) .Tags(entitySet.Name, operation is IEdmFunction ? "Function" : "Action"); if (swaggerParameters.Count > 0) { swaggerOperation.Parameters(swaggerParameters); } swaggerOperation.Responses(swaggerResponses.DefaultErrorResponse()); return new JObject() { {operation is IEdmFunction ? "get" : "post", swaggerOperation} }; }
/// <summary> /// Create the Swagger path for the Edm operation import. /// </summary> /// <param name="operationImport">The Edm operation import</param> /// <returns>The <see cref="Newtonsoft.Json.Linq.JObject"/> represents the related Edm operation import.</returns> public static JObject CreateSwaggerPathForOperationImport(IEdmOperationImport operationImport) { if (operationImport == null) { return new JObject(); } bool isFunctionImport = operationImport is IEdmFunctionImport; JArray swaggerParameters = new JArray(); foreach (var parameter in operationImport.Operation.Parameters) { swaggerParameters.Parameter(parameter.Name, isFunctionImport ? "path" : "body", "parameter: " + parameter.Name, parameter.Type.Definition); } JObject swaggerResponses = new JObject(); if (operationImport.Operation.ReturnType == null) { swaggerResponses.Response("204", "Empty response"); } else { swaggerResponses.Response("200", "Response from " + operationImport.Name, operationImport.Operation.ReturnType.Definition); } JObject swaggerOperationImport = new JObject() .Summary("Call operation import " + operationImport.Name) .OperationId(operationImport.Name + (isFunctionImport ? "_FunctionImportGet" : "_ActionImportPost")) .Description("Call operation import " + operationImport.Name) .Tags(isFunctionImport ? "Function Import" : "Action Import"); if (swaggerParameters.Count > 0) { swaggerOperationImport.Parameters(swaggerParameters); } swaggerOperationImport.Responses(swaggerResponses.DefaultErrorResponse()); return new JObject() { { isFunctionImport ? "get" : "post", swaggerOperationImport } }; }
/// <summary> /// Create the Swagger path for the Edm operation bound to the Edm entity. /// </summary> /// <param name="operation">The Edm operation.</param> /// <param name="navigationSource">The Edm navigation source.</param> /// <returns>The <see cref="Newtonsoft.Json.Linq.JObject"/> represents the related Edm operation bound to the Edm entity.</returns> public static JObject CreateSwaggerPathForOperationOfEntity(IEdmOperation operation, IEdmNavigationSource navigationSource) { IEdmEntitySet entitySet = navigationSource as IEdmEntitySet; if (operation == null || entitySet == null) { return new JObject(); } bool isFunction = operation is IEdmFunction; JArray swaggerParameters = new JArray(); foreach (var key in entitySet.EntityType().Key()) { string format; string type = GetPrimitiveTypeAndFormat(key.Type.Definition as IEdmPrimitiveType, out format); swaggerParameters.Parameter(key.Name, "path", "key: " + key.Name, type, format); } foreach (var parameter in operation.Parameters.Skip(1)) { swaggerParameters.Parameter(parameter.Name, isFunction ? "path" : "body", "parameter: " + parameter.Name, parameter.Type.Definition); } JObject swaggerResponses = new JObject(); if (operation.ReturnType == null) { swaggerResponses.Response("204", "Empty response"); } else { swaggerResponses.Response("200", "Response from " + operation.Name, operation.ReturnType.Definition); } JObject swaggerOperation = new JObject() .Summary("Call operation " + operation.Name) .OperationId(operation.Name + (isFunction ? "_FunctionGetById" : "_ActionPostById")) .Description("Call operation " + operation.Name) .Tags(entitySet.Name, isFunction ? "Function" : "Action"); if (swaggerParameters.Count > 0) { swaggerOperation.Parameters(swaggerParameters); } swaggerOperation.Responses(swaggerResponses.DefaultErrorResponse()); return new JObject() { { isFunction ? "get" : "post", swaggerOperation } }; }
static JObject CreateSwaggerPathForOperationOfEntity(IEdmOperation operation, IEdmEntitySet entitySet) { JArray swaggerParameters = new JArray(); foreach (var key in entitySet.EntityType().Key()) { string format; string type = GetPrimitiveTypeAndFormat(key.Type.Definition as IEdmPrimitiveType, out format); bool required = !key.Type.IsNullable ; swaggerParameters.Parameter(key.Name, "path", "key: " + key.Name, type, format, required); } foreach (var parameter in operation.Parameters.Skip(1)) { swaggerParameters.Parameter(parameter.Name, operation is IEdmFunction ? "path" : "body", "parameter: " + parameter.Name, parameter.Type.Definition); } JObject swaggerResponses = new JObject(); if (operation.ReturnType == null) { swaggerResponses.Response("204", "Empty response"); } else { swaggerResponses.Response("200", "Response from " + operation.Name, operation.ReturnType.Definition); } JObject swaggerOperation = new JObject() .Summary("Call operation " + operation.Name) .Description("Call operation " + operation.Name) .Tags(entitySet.Name, operation is IEdmFunction ? "Function" : "Action"); if (swaggerParameters.Count > 0) { swaggerOperation.Parameters(swaggerParameters); } swaggerOperation.Responses(swaggerResponses.DefaultErrorResponse()); return new JObject() { {operation is IEdmFunction ? "get" : "post", swaggerOperation} }; }