Skip to content

Commit

Permalink
fix: 兼容 Http 请求 2种 参数方式设置枚举的描述信息生成
Browse files Browse the repository at this point in the history
  • Loading branch information
jianxuanbing committed Oct 25, 2022
1 parent 3470231 commit 57c12fa
Show file tree
Hide file tree
Showing 14 changed files with 473 additions and 33 deletions.
61 changes: 35 additions & 26 deletions samples/Bing.Samples.ApiGroup_v3/Controllers/DemoController.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using Bing.Samples.ApiGroup.Models;
using Bing.Samples.ApiGroup.Models.Responses;
using Bing.Samples.Common;
using Bing.Swashbuckle.Attributes;
using Microsoft.AspNetCore.Mvc;
Expand All @@ -10,54 +11,62 @@ namespace Bing.Samples.ApiGroup.Controllers
/// </summary>
[ApiController]
[SwaggerApiGroup(ApiGroupSample.Demo)]
[Route("api/[controller]")]
[Route("api/[controller]/[action]")]
public class DemoController:Controller
{
/// <summary>
/// 获取列表
/// 上传文件
/// </summary>
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
/// <param name="sample">上传信息</param>
[HttpPost]
public Result Upload([FromForm] UploadSample sample)
{
return new string[] { "value1", "value2" };
return Result.Success(sample.Name);
}

/// <summary>
/// 获取详情
/// 查询
/// </summary>
/// <param name="id">标识</param>
[HttpGet("{id}")]
public ActionResult<string> Get(int id)
/// <param name="sample">查询</param>
[HttpGet]
public virtual Result Query([FromQuery] QuerySample sample)
{
return "value";
return Result.Success(sample);
}

/// <summary>
/// 新增
/// 获取默认值
/// </summary>
/// <param name="value">值</param>
[HttpPost]
public void Post([FromBody] string value)
/// <param name="q">字符串</param>
/// <param name="page">页索引</param>
/// <param name="pageSize">每页记录数</param>
/// <param name="enumSample">枚举例子</param>
[HttpGet]
public virtual Result GetDefaultValue([FromQuery] string q, [FromQuery] int page = 1, [FromQuery] int pageSize = 20, [FromQuery] EnumSample enumSample = EnumSample.Two)
{
return Result.Success(new
{
q,
page,
pageSize
});
}

/// <summary>
/// 修改
/// 提交
/// </summary>
/// <param name="id">标识</param>
/// <param name="value">值</param>
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
/// <param name="sample">查询例子</param>
[HttpPost]
public Result Post([FromBody] QuerySample sample)
{
return Result.Success(sample);
}

/// <summary>
/// 删除
/// 测试 枚举字典响应
/// </summary>
/// <param name="id">标识</param>
[HttpDelete("{id}")]
public void Delete(int id)
{
}
[HttpGet("TestEnumDictionaryResp")]
[ProducesResponseType(typeof(EnumDictionaryResponse), 200)]
public IActionResult TestEnumDictionaryResp() => new JsonResult(new EnumDictionaryResponse());
}
}
26 changes: 26 additions & 0 deletions samples/Bing.Samples.ApiGroup_v3/Models/GroupSample.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using Bing.Swashbuckle.Attributes;

namespace Bing.Samples.ApiGroup.Models
{
/// <summary>
/// 分组例子
/// </summary>
public enum GroupSample
{
/// <summary>
/// 登录
/// </summary>
[SwaggerApiGroupInfo(Title = "登录模块", Description = "登录模块相关接口")]
Login,
/// <summary>
/// 测试
/// </summary>
[SwaggerApiGroupInfo(Title = "测试模块", Description = "测试相关接口")]
Test,
/// <summary>
/// 案例
/// </summary>
[SwaggerApiGroupInfo(Title = "Demo模块", Description = "案例模块相关接口")]
Demo
}
}
68 changes: 68 additions & 0 deletions samples/Bing.Samples.ApiGroup_v3/Models/QuerySample.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
using System;
using System.ComponentModel;
using Bing.Swashbuckle.Attributes;

namespace Bing.Samples.ApiGroup.Models
{
/// <summary>
/// 查询例子
/// </summary>
public class QuerySample
{
/// <summary>
/// 编号
/// </summary>
public Guid Id { get; set; }

/// <summary>
/// 名称
/// </summary>
[DefaultValue("隔壁老黑")]
public string Name { get; set; } = "隔壁老王";

/// <summary>
/// 密码
/// </summary>
[SwaggerIgnoreProperty]
public string Password { get; set; }

/// <summary>
/// 性别
/// </summary>
[DefaultValue(1)]
public int Gender { get; set; } = 2;

/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }

/// <summary>
/// 枚举例子
/// </summary>
[DefaultValue(EnumSample.Two)]
public EnumSample EnumSample { get; set; }
}

/// <summary>
/// 枚举例子
/// </summary>
public enum EnumSample
{
/// <summary>
/// 老大
/// </summary>
[Description("老大")]
One = 1,
/// <summary>
/// 老二
/// </summary>
[Description("老二")]
Two = 2,
/// <summary>
/// 老三
/// </summary>
[Description("老三")]
Three = 3
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace Bing.Samples.ApiGroup.Models.Requests
{
public class EnumDictionaryRequest
{
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
using System.Text.Json.Serialization;
using Newtonsoft.Json;

namespace Bing.Samples.ApiGroup.Models.Requests
{
/// <summary>
/// Post Json属性请求
/// </summary>
public class PostJsonPropertyRequest
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }

/// <summary>
/// 昵称
/// </summary>
[JsonProperty("nickname")]
public string OtherName { get; set; }

/// <summary>
/// Json属性名
/// </summary>
[JsonPropertyName("jsonPropertyName")]
public string SerializeName { get; set; }

/// <summary>
/// 子属性
/// </summary>
public PostJsonPropertyChildRequest Child { get; set; }
}

/// <summary>
/// Post Json子属性请求
/// </summary>
public class PostJsonPropertyChildRequest
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }

/// <summary>
/// 昵称
/// </summary>
[JsonProperty("nickname")]
public string OtherName { get; set; }

/// <summary>
/// Json属性名
/// </summary>
[JsonPropertyName("jsonPropertyName")]
public string SerializeName { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
using System.Collections.Generic;
using System.ComponentModel;

namespace Bing.Samples.ApiGroup.Models.Responses
{
/// <summary>
/// 枚举字典响应
/// </summary>
public class EnumDictionaryResponse
{
/// <summary>
/// 单据状态
/// </summary>
public Dictionary<SendNoticeOrderStatus, int> StatusDic { get; set; }

/// <summary>
/// 异常状态
/// </summary>
public Dictionary<SendOrderErrorCode, int> ErrorCodeDic { get; set; }
}

/// <summary>
/// 发货状态枚举
/// </summary>
public enum SendNoticeOrderStatus
{
/// <summary>
/// 待组合
/// </summary>
[Description("待组合")]
WaitForCombination = 0,

/// <summary>
/// 待拣货
/// </summary>
[Description("待拣货")]
WaitForPicking = 1,

/// <summary>
/// 拣货中
/// </summary>
[Description("拣货中")]
Picking = 2,

/// <summary>
/// 待打包
/// </summary>
[Description("待打包")]
WaitForPacking = 3,

/// <summary>
/// 待发货
/// </summary>
[Description("待发货")]
Packed = 4,

/// <summary>
/// 部分发货
/// </summary>
[Description("部分发货")]
PartialSent = 6,

/// <summary>
/// 全部发货
/// </summary>
[Description("全部发货")]
Sent = 7,

/// <summary>
/// 已取消
/// </summary>
[Description("已取消")]
Cancel = 8,

/// <summary>
/// 通知电商中
/// </summary>
[Description("通知电商中")]
NoticingEShop = 9,

/// <summary>
/// 通知TMS中
/// </summary>
[Description("通知TMS中")]
NoticingTms = 10

}

/// <summary>
/// 发货单异常枚举
/// </summary>
public enum SendOrderErrorCode
{
/// <summary>
/// 正常
/// </summary>
[Description("正常")]
Normal = 0,

/// <summary>
/// 系统缺货
/// </summary>
[Description("系统缺货")]
SysQtyShort = 1,

/// <summary>
/// 实物缺货
/// </summary>
[Description("实物缺货")]
RealQtyShort = 2,
}
}
Loading

0 comments on commit 57c12fa

Please sign in to comment.