/// <summary>
/// Creates an api operation
/// </summary>
/// <param name="api">Description of the api via the ApiExplorer</param>
/// <param name="docProvider">Access to the XML docs written in code</param>
/// <returns>An api operation</returns>
public static ResourceApiOperation CreateResourceApiOperation(ApiDescription api, XmlCommentDocumentationProvider docProvider, DataTypeRegistry dataTypeRegistry)
{
ResourceApiOperation rApiOperation = new ResourceApiOperation()
{
httpMethod = api.HttpMethod.ToString(),
nickname = docProvider.GetNickname(api.ActionDescriptor),
responseClass = docProvider.GetResponseClass(api.ActionDescriptor),
summary = api.Documentation,
notes = docProvider.GetNotes(api.ActionDescriptor),
type = docProvider.GetResponseClass(api.ActionDescriptor),
parameters = new List <ResourceApiOperationParameter>(),
responseMessages = new List <ResourceApiOperationResponseMessage>(),
};
var responseType = api.ActualResponseType();
if (responseType == null)
{
rApiOperation.type = "void";
}
else
{
var dataType = dataTypeRegistry.GetOrRegister(responseType);
if (dataType.Type == "object")
{
rApiOperation.type = dataType.Id;
}
else
{
rApiOperation.type = dataType.Type;
rApiOperation.format = dataType.Format;
rApiOperation.items = dataType.Items;
rApiOperation.Enum = dataType.Enum;
}
}
return(rApiOperation);
}