|
@@ -78,6 +78,10 @@ namespace DocTools
|
|
|
{
|
|
|
entity.Para = childNode.InnerText.Trim();
|
|
|
}
|
|
|
+ else if (childNode.Name == "notshow")
|
|
|
+ {
|
|
|
+ entity.C = (string.IsNullOrEmpty(childNode.InnerText.Trim()) || childNode.InnerText.Trim() == "true") ? true : false;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if (!string.IsNullOrEmpty(entity.ParamName))
|
|
@@ -97,8 +101,8 @@ namespace DocTools
|
|
|
{
|
|
|
var moduleList = new List<APIModuleEntity>();
|
|
|
var memberList = GetInterfaceConfigToCache();
|
|
|
-
|
|
|
- var interfaceMemberList = memberList.FindAll(c => c.ParamName.Contains(classNamespace) && !string.IsNullOrEmpty(c.Example));
|
|
|
+ //其中C为true,表示显示,其他为不显示
|
|
|
+ var interfaceMemberList = memberList.FindAll(c => c.ParamName.Contains(classNamespace) && !string.IsNullOrEmpty(c.Example) && c.C);
|
|
|
if (interfaceMemberList?.Count > 0)
|
|
|
{
|
|
|
//先找到大的api模块,赋值方法上的example
|
|
@@ -155,6 +159,10 @@ namespace DocTools
|
|
|
Type type = GetAssemblyFromCache().GetType(interfaceModel.InterfaceFullName);
|
|
|
foreach (var methodItem in methodMemberList)
|
|
|
{
|
|
|
+ if (!methodItem.C)
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
if (!interfaceModel.MethodList.Exists(c => c.MethodNameSpace == methodItem.ParamName))
|
|
|
{
|
|
|
var methodModel = new MethodBasicEntity()
|
|
@@ -168,9 +176,12 @@ namespace DocTools
|
|
|
ReturnsTypeFullName = "",
|
|
|
SubmitType = string.IsNullOrEmpty(methodItem.Remarks) ? "POST" : methodItem.Remarks,
|
|
|
ParamName = methodItem.Param?.FirstOrDefault()?.ParamName,
|
|
|
- ParamText = methodItem.Param?.FirstOrDefault()?.ParamText,
|
|
|
- ParamTypeFullName = methodItem.ParamName.Split('(')[1].TrimEnd(')')
|
|
|
+ ParamText = methodItem.Param?.FirstOrDefault()?.ParamText
|
|
|
};
|
|
|
+ if (methodItem.ParamName.Split('(').Length > 1)
|
|
|
+ {
|
|
|
+ methodModel.ParamTypeFullName = methodItem.ParamName.Split('(')[1].TrimEnd(')');
|
|
|
+ }
|
|
|
if (!string.IsNullOrEmpty(methodItem.Para) && methodItem.Para.Split(',').Length > 0)
|
|
|
{
|
|
|
foreach (var paraItem in methodItem.Para.Split(','))
|
|
@@ -178,24 +189,27 @@ namespace DocTools
|
|
|
methodModel.ParaList.Add(paraItem);
|
|
|
}
|
|
|
}
|
|
|
- //封装请求参数实体
|
|
|
- var requestClassNamespace = "T:" + methodModel.ParamTypeFullName;
|
|
|
- var requestClassMemberInfo = memberList.Find(c => c.ParamName.Contains(requestClassNamespace));
|
|
|
- if (requestClassMemberInfo == null)
|
|
|
+ if (!string.IsNullOrEmpty(methodModel.ParamTypeFullName))
|
|
|
{
|
|
|
- continue;
|
|
|
+ //封装请求参数实体
|
|
|
+ var requestClassNamespace = "T:" + methodModel.ParamTypeFullName;
|
|
|
+ var requestClassMemberInfo = memberList.Find(c => c.ParamName.Contains(requestClassNamespace));
|
|
|
+ if (requestClassMemberInfo == null)
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ var tuple = GetRequestParameterPropertyList(methodModel.ParamTypeFullName);
|
|
|
+ ParamPropertyEntity requestEntity = new ParamPropertyEntity()
|
|
|
+ {
|
|
|
+ Desc = requestClassMemberInfo.Summary,
|
|
|
+ ParamPropertyList = tuple.Item1,
|
|
|
+ Name = methodModel.ParamTypeFullName.Split('.').Last(),
|
|
|
+ TypeFullName = !string.IsNullOrEmpty(tuple.Item2) ? tuple.Item2 : methodModel.ParamTypeFullName,
|
|
|
+ DefaultValue = requestClassMemberInfo.Value,
|
|
|
+ IsNotNull = "1"
|
|
|
+ };
|
|
|
+ methodModel.RequestList.Add(requestEntity);
|
|
|
}
|
|
|
- var tuple = GetRequestParameterPropertyList(methodModel.ParamTypeFullName);
|
|
|
- ParamPropertyEntity requestEntity = new ParamPropertyEntity()
|
|
|
- {
|
|
|
- Desc = requestClassMemberInfo.Summary,
|
|
|
- ParamPropertyList = tuple.Item1,
|
|
|
- Name = methodModel.ParamTypeFullName.Split('.').Last(),
|
|
|
- TypeFullName = !string.IsNullOrEmpty(tuple.Item2) ? tuple.Item2 : methodModel.ParamTypeFullName,
|
|
|
- DefaultValue = requestClassMemberInfo.Value,
|
|
|
- IsNotNull = "1"
|
|
|
- };
|
|
|
- methodModel.RequestList.Add(requestEntity);
|
|
|
//封装响应参数实体
|
|
|
var methodInfoItem = type.GetMethod(methodModel.MethodName);
|
|
|
var returnTypeParams = methodInfoItem.ReturnParameter?.ParameterType?.GenericTypeArguments;
|
|
@@ -385,11 +399,14 @@ namespace DocTools
|
|
|
if (item.PropertyType.FullName.Contains("System.Collections.Generic.List"))
|
|
|
{
|
|
|
var fx = item.PropertyType.FullName.Split(',')?.FirstOrDefault()?.Replace("System.Collections.Generic.List`1[[", "");
|
|
|
- var tuple = GetRequestParameterPropertyList(item.PropertyType.FullName, fx);
|
|
|
- propertyModel.ParamPropertyList = tuple.Item1;
|
|
|
- if (!string.IsNullOrEmpty(tuple.Item2))
|
|
|
+ if (!fx.Contains(namespacePath))
|
|
|
{
|
|
|
- propertyModel.TypeFullName = tuple.Item2;
|
|
|
+ var tuple = GetRequestParameterPropertyList(item.PropertyType.FullName, fx);
|
|
|
+ propertyModel.ParamPropertyList = tuple.Item1;
|
|
|
+ if (!string.IsNullOrEmpty(tuple.Item2))
|
|
|
+ {
|
|
|
+ propertyModel.TypeFullName = tuple.Item2;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
else if(item.PropertyType.FullName.Contains("WingInterfaceLibrary.Enum."))
|
|
@@ -403,12 +420,15 @@ namespace DocTools
|
|
|
propertyModelTemp.DefaultValue = "";
|
|
|
propertyModelTemp.Desc = desc;
|
|
|
propertyModelTemp.IsNotNull = memberEntity.Code;
|
|
|
- propertyModelTemp.Name = item.Name;
|
|
|
- var tuple = GetRequestParameterPropertyList(item.PropertyType.FullName);
|
|
|
- propertyModelTemp.ParamPropertyList = tuple.Item1;
|
|
|
- if (!string.IsNullOrEmpty(tuple.Item2))
|
|
|
+ propertyModelTemp.Name = item.Name;
|
|
|
+ if (!item.PropertyType.FullName.Contains(namespacePath))
|
|
|
{
|
|
|
- propertyModelTemp.TypeFullName = tuple.Item2;
|
|
|
+ var tuple = GetRequestParameterPropertyList(item.PropertyType.FullName);
|
|
|
+ propertyModelTemp.ParamPropertyList = tuple.Item1;
|
|
|
+ if (!string.IsNullOrEmpty(tuple.Item2))
|
|
|
+ {
|
|
|
+ propertyModelTemp.TypeFullName = tuple.Item2;
|
|
|
+ }
|
|
|
}
|
|
|
propertyModel.ParamPropertyList.Add(propertyModelTemp);
|
|
|
}
|
|
@@ -437,11 +457,14 @@ namespace DocTools
|
|
|
propertyModelTemp.Desc = requestClassMemberInfo.Summary;
|
|
|
propertyModelTemp.IsNotNull = requestClassMemberInfo.Code;
|
|
|
propertyModelTemp.Name = propertyModelTemp.TypeFullName.Split('.').LastOrDefault();
|
|
|
- var tuple = GetRequestParameterPropertyList(propertyModelTemp.TypeFullName);
|
|
|
- propertyModelTemp.ParamPropertyList = tuple.Item1;
|
|
|
- if (!string.IsNullOrEmpty(tuple.Item2))
|
|
|
+ if (!propertyModelTemp.TypeFullName.Contains(namespacePath))
|
|
|
{
|
|
|
- propertyModelTemp.TypeFullName = tuple.Item2;
|
|
|
+ var tuple = GetRequestParameterPropertyList(propertyModelTemp.TypeFullName);
|
|
|
+ propertyModelTemp.ParamPropertyList = tuple.Item1;
|
|
|
+ if (!string.IsNullOrEmpty(tuple.Item2))
|
|
|
+ {
|
|
|
+ propertyModelTemp.TypeFullName = tuple.Item2;
|
|
|
+ }
|
|
|
}
|
|
|
propertyModel.ParamPropertyList.Add(propertyModelTemp);
|
|
|
}
|