Skip to content

Commit 7580e63

Browse files
authored
Merge pull request #7 from lohaaa/net8
2 parents d19f56c + c430fe0 commit 7580e63

File tree

7 files changed

+102
-11
lines changed

7 files changed

+102
-11
lines changed

Sample/Models/CreateOrderRequest.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,21 @@ public class CreateOrderRequest
1010
/// <summary>
1111
/// 商品ID
1212
/// </summary>
13+
[Range(1, int.MaxValue, ErrorMessage = "范围为1-int32.max")]
1314
public int GoodsId { get; set; }
14-
15+
1516
/// <summary>
1617
/// 商品名称
1718
/// </summary>
1819
[Required]
20+
[MaxLength(256, ErrorMessage = "最大长度为256")]
1921
public string GoodsName { get; set; }
20-
22+
2123
/// <summary>
2224
/// 商品数量
2325
/// </summary>
2426
public int GoodsNum { get; set; }
25-
27+
2628
/// <summary>
2729
/// 订单类型
2830
/// </summary>

Sample/Models/CreateOrderResponse.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System.ComponentModel.DataAnnotations;
2+
13
namespace Sample.Models;
24

35
/// <summary>
@@ -8,13 +10,16 @@ public class CreateOrderResponse
810
/// <summary>
911
/// 订单号
1012
/// </summary>
13+
[MinLength(1, ErrorMessage = "最小长度为1")]
14+
[MaxLength(64, ErrorMessage = "最大长度为64")]
15+
[RegularExpression("^[a-zA-Z0-9-]+$", ErrorMessage = "只允许包含大小写字母、数字和英文中横线")]
1116
public string OrderNo { get; set; }
1217

1318
/// <summary>
1419
/// 支付链接
1520
/// </summary>
1621
public string PayUrl { get; set; }
17-
22+
1823
/// <summary>
1924
/// 支付二维码
2025
/// </summary>

Sample/Models/GetOrderListRequest.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System.ComponentModel.DataAnnotations;
2+
13
namespace Sample.Models;
24

35
/// <summary>
@@ -8,13 +10,16 @@ public class GetOrderListRequest
810
/// <summary>
911
/// 订单号
1012
/// </summary>
13+
[MinLength(1, ErrorMessage = "最小长度为1")]
14+
[MaxLength(64, ErrorMessage = "最大长度为64")]
15+
[RegularExpression("^[a-zA-Z0-9-]+$", ErrorMessage = "只允许包含大小写字母、数字和英文中横线")]
1116
public string OrderNo { get; set; }
12-
17+
1318
/// <summary>
1419
/// 订单类型
1520
/// </summary>
1621
public OrderType OrderType { get; set; }
17-
22+
1823
/// <summary>
1924
/// 订单状态
2025
/// </summary>

SwaggerDoc/Models/OtherInfo.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Text.Json.Serialization;
2+
3+
namespace SwaggerDoc.Models
4+
{
5+
/// <summary>
6+
/// 其他信息
7+
/// </summary>
8+
public class OtherInfo
9+
{
10+
/// <summary>
11+
/// 最小长度
12+
/// </summary>
13+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
14+
public int? 最小长度 { get; set; }
15+
/// <summary>
16+
/// 最大长度
17+
/// </summary>
18+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
19+
public int? 最大长度 { get; set; }
20+
/// <summary>
21+
/// 最小值
22+
/// </summary>
23+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
24+
public decimal? 最小值 { get; set; }
25+
/// <summary>
26+
/// 最大值
27+
/// </summary>
28+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
29+
public decimal? 最大值 { get; set; }
30+
/// <summary>
31+
/// 格式校验
32+
/// </summary>
33+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
34+
public string 格式校验 { get; set; }
35+
}
36+
}

SwaggerDoc/Models/RequestModelInfo.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,10 @@ public class RequestModelInfo
2424
/// 是否必传
2525
/// </summary>
2626
public bool 是否必传 { get; set; }
27+
28+
/// <summary>
29+
/// 其他信息
30+
/// </summary>
31+
public OtherInfo 其他信息 { get; set; }
2732
}
2833
}

SwaggerDoc/Models/ResponseModelInfo.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,10 @@ public class ResponseModelInfo
1919
/// 可空类型
2020
/// </summary>
2121
public bool 可空类型 { get; set; }
22+
23+
/// <summary>
24+
/// 其他信息
25+
/// </summary>
26+
public OtherInfo 其他信息 { get; set; }
2227
}
2328
}

SwaggerDoc/SwaggerDocGenerator.cs

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,12 @@ private string GetParameters(IEnumerable<OpenApiParameter> apiParameters)
135135
{
136136
string str = null;
137137
var isFirst = true;
138-
var queryTitle = "|参数名称|参数类型|参数位置|描述|".NewLine();
139-
queryTitle += "|:----:|:----:|:----:|:----:|".NewLine();
138+
var queryTitle = "|参数名称|参数类型|参数位置|描述|其他信息|".NewLine();
139+
queryTitle += "|:----:|:----:|:----:|:----:|:----:|".NewLine();
140140
foreach (var parameter in apiParameters)
141141
{
142142
var queryStr =
143-
$"|{parameter.Name}|{parameter.Schema.Type ?? parameter.Schema.Reference.Id}|{parameter.In}|{parameter.Description}|"
143+
$"|{parameter.Name}|{parameter.Schema.Type ?? parameter.Schema.Reference.Id}|{parameter.In}|{parameter.Description}|{GetParameterOtherInfo(parameter)}|"
144144
.NewLine();
145145
str += isFirst ? $"{queryTitle}{queryStr}" : queryStr;
146146
isFirst = false;
@@ -149,6 +149,23 @@ private string GetParameters(IEnumerable<OpenApiParameter> apiParameters)
149149
return str;
150150
}
151151

152+
/// <summary>
153+
/// 获取参数其他信息
154+
/// </summary>
155+
/// <param name="parameter">参数</param>
156+
/// <returns>参数其他信息</returns>
157+
private static string GetParameterOtherInfo(OpenApiParameter parameter)
158+
{
159+
var otherInfoStr = string.Empty;
160+
otherInfoStr += parameter.Required ? $"是否必传:`{parameter.Required.ToString()}`".Br() : string.Empty;
161+
otherInfoStr += parameter.Schema.MinLength.HasValue ? $"最小长度:`{parameter.Schema.MinLength.Value}`".Br() : string.Empty;
162+
otherInfoStr += parameter.Schema.MaxLength.HasValue ? $"最大长度:`{parameter.Schema.MaxLength.Value}`".Br() : string.Empty;
163+
otherInfoStr += parameter.Schema.Minimum.HasValue ? $"最小值:`{parameter.Schema.Minimum.Value}`".Br() : string.Empty;
164+
otherInfoStr += parameter.Schema.Maximum.HasValue ? $"最大值:`{parameter.Schema.Maximum.Value}`".Br() : string.Empty;
165+
otherInfoStr += !string.IsNullOrWhiteSpace(parameter.Schema.Pattern) ? $"格式校验:`{parameter.Schema.Pattern}`" : string.Empty;
166+
return otherInfoStr;
167+
}
168+
152169
/// <summary>
153170
/// 获取 RequestBody 参数说明、JSON 示例
154171
/// </summary>
@@ -388,7 +405,15 @@ private object GetFiledDetails(string key, ModelType modelType)
388405
参数类型 = obj,
389406
描述 = value.Description,
390407
是否必传 = schema.Required.Any(x => x == s),
391-
可空类型 = value.Nullable
408+
可空类型 = value.Nullable,
409+
其他信息 = new OtherInfo
410+
{
411+
最小长度 = value.MinLength,
412+
最大长度 = value.MaxLength,
413+
格式校验 = value.Pattern,
414+
最小值 = value.Minimum,
415+
最大值 = value.Maximum,
416+
}
392417
};
393418
properties.Add(s, requestModelInfo);
394419
}
@@ -398,7 +423,15 @@ private object GetFiledDetails(string key, ModelType modelType)
398423
{
399424
参数类型 = obj,
400425
描述 = value.Description,
401-
可空类型 = value.Nullable
426+
可空类型 = value.Nullable,
427+
其他信息 = new OtherInfo
428+
{
429+
最小长度 = value.MinLength,
430+
最大长度 = value.MaxLength,
431+
格式校验 = value.Pattern,
432+
最小值 = value.Minimum,
433+
最大值 = value.Maximum,
434+
}
402435
};
403436
properties.Add(s, responseModelInfo);
404437
}

0 commit comments

Comments
 (0)