Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d70e8326a | ||
|
|
2abe486151 |
@@ -1,4 +1,4 @@
|
||||
name: CI
|
||||
name: PublishNugetPackage
|
||||
|
||||
on: [create]
|
||||
|
||||
@@ -29,6 +29,6 @@ jobs:
|
||||
run: |
|
||||
version=`git describe --tags`
|
||||
dotnet pack --configuration release -p:PackageVersion=$version
|
||||
dotnet nuget push bin/release/YY-Tech.YYApi.$version.nupkg -k ${APIKEY} -s https://www.nuget.org/api/v2/package
|
||||
dotnet nuget push bin/release/simcu.simapi.$version.nupkg -k ${NUGET_APIKEY} -s https://www.nuget.org/api/v2/package
|
||||
env:
|
||||
APIKEY: ${{ secrets.APPKEY }}
|
||||
|
||||
@@ -1,49 +1,49 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Microsoft.AspNetCore.Mvc.Filters;
|
||||
using YYApi.Communications;
|
||||
using YYApi.Exceptions;
|
||||
using SimApi.Communications;
|
||||
using SimApi.Exceptions;
|
||||
|
||||
namespace YYApi.Attributes
|
||||
namespace SimApi.Attributes
|
||||
{
|
||||
/// <summary>
|
||||
/// 检测登录中间件
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
|
||||
public class YYAuthAttribute : ActionFilterAttribute
|
||||
public class SimApiAuthAttribute : ActionFilterAttribute
|
||||
{
|
||||
private string[] Types { get; }
|
||||
|
||||
//默认是user登录类型
|
||||
public YYAuthAttribute()
|
||||
public SimApiAuthAttribute()
|
||||
{
|
||||
Types = new[] { "user" };
|
||||
}
|
||||
|
||||
//只检测一种用户类型的快捷方式
|
||||
public YYAuthAttribute(string type)
|
||||
public SimApiAuthAttribute(string type)
|
||||
{
|
||||
Types = new[] { type };
|
||||
}
|
||||
|
||||
//设定特定类型的检测
|
||||
public YYAuthAttribute(string[] types)
|
||||
public SimApiAuthAttribute(string[] types)
|
||||
{
|
||||
Types = types;
|
||||
}
|
||||
|
||||
public override void OnActionExecuting(ActionExecutingContext context)
|
||||
{
|
||||
var loginInfo = (YYLoginItem)context.HttpContext.Items["LoginInfo"];
|
||||
var loginInfo = (SimApiLoginItem)context.HttpContext.Items["LoginInfo"];
|
||||
//检测是否登录
|
||||
if (loginInfo == null)
|
||||
{
|
||||
throw new YYApiException(401);
|
||||
throw new SimApiException(401);
|
||||
}
|
||||
//检测用户类型
|
||||
if (Types.Intersect(loginInfo.Type).Count() == 0)
|
||||
{
|
||||
throw new YYApiException(403);
|
||||
throw new SimApiException(403);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,20 +1,20 @@
|
||||
using System;
|
||||
using Swashbuckle.AspNetCore.Annotations;
|
||||
|
||||
namespace YYApi.Attributes
|
||||
namespace SimApi.Attributes
|
||||
{
|
||||
/// <summary>
|
||||
/// 快捷自定义接口文档类
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
|
||||
public class YYDocAttribute : SwaggerOperationAttribute
|
||||
public class SimApiDocAttribute : SwaggerOperationAttribute
|
||||
{
|
||||
/// <summary>
|
||||
/// 定义接口说明
|
||||
/// </summary>
|
||||
/// <param name="tag">接口分组</param>
|
||||
/// <param name="name">接口名称</param>
|
||||
public YYDocAttribute(string tag, string name)
|
||||
public SimApiDocAttribute(string tag, string name)
|
||||
{
|
||||
Tags = new[] { tag };
|
||||
Summary = name;
|
||||
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
namespace YYApi.Communications
|
||||
namespace SimApi.Communications
|
||||
{
|
||||
/// <summary>
|
||||
/// 只有ID的请求
|
||||
/// </summary>
|
||||
public class YYIdOnlyRequest
|
||||
public class SimApiIdOnlyRequest
|
||||
{
|
||||
public int Id { get; set; }
|
||||
}
|
||||
@@ -12,7 +12,7 @@ namespace YYApi.Communications
|
||||
/// <summary>
|
||||
/// 基础分页请求
|
||||
/// </summary>
|
||||
public class YYBasePageRequest
|
||||
public class SimApiBasePageRequest
|
||||
{
|
||||
public int Page { get; set; }
|
||||
public int Count { get; set; }
|
||||
@@ -2,12 +2,12 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace YYApi.Communications
|
||||
namespace SimApi.Communications
|
||||
{
|
||||
/// <summary>
|
||||
/// 基础相应
|
||||
/// </summary>
|
||||
public class YYBaseResponse
|
||||
public class SimApiBaseResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误代码
|
||||
@@ -36,7 +36,7 @@ namespace YYApi.Communications
|
||||
/// <summary>
|
||||
/// 返回一个成功的空结果
|
||||
/// </summary>
|
||||
public YYBaseResponse()
|
||||
public SimApiBaseResponse()
|
||||
{
|
||||
SetCode(200);
|
||||
}
|
||||
@@ -46,7 +46,7 @@ namespace YYApi.Communications
|
||||
/// 返回指定代码的描述
|
||||
/// </summary>
|
||||
/// <param name="code">错误代码</param>
|
||||
public YYBaseResponse(int code)
|
||||
public SimApiBaseResponse(int code)
|
||||
{
|
||||
SetCode(code);
|
||||
}
|
||||
@@ -56,7 +56,7 @@ namespace YYApi.Communications
|
||||
/// </summary>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误信息</param>
|
||||
public YYBaseResponse(int code, string message)
|
||||
public SimApiBaseResponse(int code, string message)
|
||||
{
|
||||
SetCodeMsg(code, message);
|
||||
}
|
||||
@@ -104,7 +104,7 @@ namespace YYApi.Communications
|
||||
/// 动态内容分页
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class YYBasePageResponse<T> : YYBaseResponse
|
||||
public class SimApiBasePageResponse<T> : SimApiBaseResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 动态内容列表
|
||||
@@ -122,7 +122,7 @@ namespace YYApi.Communications
|
||||
/// 动态Data返回
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class YYBaseResponse<T> : YYBaseResponse
|
||||
public class SimApiBaseResponse<T> : SimApiBaseResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 动态内容列表
|
||||
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
namespace YYApi.Communications
|
||||
namespace SimApi.Communications
|
||||
{
|
||||
/// <summary>
|
||||
/// 登录信息中间件
|
||||
/// </summary>
|
||||
public class YYLoginItem
|
||||
public class SimApiLoginItem
|
||||
{
|
||||
//登录用户的ID
|
||||
public int Id { get; set; }
|
||||
@@ -1,12 +1,12 @@
|
||||
using YYApi.Communications;
|
||||
using SimApi.Communications;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.Filters;
|
||||
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
||||
using System.Linq;
|
||||
using YYApi.Exceptions;
|
||||
using YYApi.Attributes;
|
||||
using SimApi.Exceptions;
|
||||
using SimApi.Attributes;
|
||||
|
||||
namespace YYApi.Controllers
|
||||
namespace SimApi.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 基础控制器,所有控制器均继承本控制器
|
||||
@@ -14,12 +14,12 @@ namespace YYApi.Controllers
|
||||
/// 2. 报错返回
|
||||
/// 3. 错误回馈页面
|
||||
/// </summary>
|
||||
public class YYBaseController : Controller
|
||||
public class SimApiBaseController : Controller
|
||||
{
|
||||
/// <summary>
|
||||
/// 当前登录用户的ID
|
||||
/// </summary>
|
||||
protected YYLoginItem LoginInfo => (YYLoginItem)HttpContext.Items["LoginInfo"];
|
||||
protected SimApiLoginItem LoginInfo => (SimApiLoginItem)HttpContext.Items["LoginInfo"];
|
||||
|
||||
/// <summary>
|
||||
/// 验证请求参数
|
||||
@@ -49,7 +49,7 @@ namespace YYApi.Controllers
|
||||
/// <returns></returns>
|
||||
protected static void Error(int code = 500, string message = "")
|
||||
{
|
||||
throw new YYApiException(code, message);
|
||||
throw new SimApiException(code, message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -81,11 +81,11 @@ namespace YYApi.Controllers
|
||||
/// 上传文件
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected YYBaseResponse<string> UploadFile()
|
||||
protected SimApiBaseResponse<string> UploadFile()
|
||||
{
|
||||
return new YYBaseResponse<string>();
|
||||
return new SimApiBaseResponse<string>();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,16 @@
|
||||
using System;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using YYApi.Attributes;
|
||||
using YYApi.Communications;
|
||||
using YYApi.Helpers;
|
||||
using SimApi.Attributes;
|
||||
using SimApi.Communications;
|
||||
using SimApi.Helpers;
|
||||
|
||||
namespace YYApi.Controllers
|
||||
namespace SimApi.Controllers
|
||||
{
|
||||
public class YYCommonController : YYBaseController
|
||||
public class YYCommonController : SimApiBaseController
|
||||
{
|
||||
private YYAuth Auth { get; }
|
||||
private SimApiAuth Auth { get; }
|
||||
|
||||
public YYCommonController(YYAuth auth)
|
||||
public YYCommonController(SimApiAuth auth)
|
||||
{
|
||||
Auth = auth;
|
||||
}
|
||||
@@ -22,9 +22,9 @@ namespace YYApi.Controllers
|
||||
/// <returns></returns>
|
||||
[HttpGet("exception/{code:int}")]
|
||||
[ApiExplorerSettings(IgnoreApi = true)]
|
||||
public YYBaseResponse ExceptionHandler(int code)
|
||||
public SimApiBaseResponse ExceptionHandler(int code)
|
||||
{
|
||||
var response = new YYBaseResponse();
|
||||
var response = new SimApiBaseResponse();
|
||||
response.SetCode(code);
|
||||
return response;
|
||||
}
|
||||
@@ -33,19 +33,19 @@ namespace YYApi.Controllers
|
||||
/// 检测用户登陆的控制器
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("/auth/check"), YYDoc("认证", "检测登陆")]
|
||||
public YYBaseResponse<int> CheckLogin()
|
||||
[HttpPost("/auth/check"), SimApiDoc("认证", "检测登陆")]
|
||||
public SimApiBaseResponse<int> CheckLogin()
|
||||
{
|
||||
ErrorWhenNull(LoginInfo, 401);
|
||||
return new YYBaseResponse<int> { Data = LoginInfo.Id };
|
||||
return new SimApiBaseResponse<int> { Data = LoginInfo.Id };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 退出登陆
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("/auth/logout"), YYDoc("认证", "退出登陆")]
|
||||
public YYBaseResponse Logout()
|
||||
[HttpPost("/auth/logout"), SimApiDoc("认证", "退出登陆")]
|
||||
public SimApiBaseResponse Logout()
|
||||
{
|
||||
string token = null;
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace YYApi.Controllers
|
||||
token = Request.Headers["Token"];
|
||||
}
|
||||
Auth.Logout(token);
|
||||
return new YYBaseResponse();
|
||||
return new SimApiBaseResponse();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
using System;
|
||||
namespace YYApi.Exceptions
|
||||
namespace SimApi.Exceptions
|
||||
{
|
||||
/// <summary>
|
||||
/// Api错误捕获异常
|
||||
/// </summary>
|
||||
public class YYApiException : Exception
|
||||
public class SimApiException : Exception
|
||||
{
|
||||
public int Code { get; }
|
||||
|
||||
public YYApiException(int code, string message = "") : base(message)
|
||||
public SimApiException(int code, string message = "") : base(message)
|
||||
{
|
||||
Code = code;
|
||||
}
|
||||
@@ -2,18 +2,18 @@ using System;
|
||||
using System.Text.Json;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.Caching.Distributed;
|
||||
using YYApi.Communications;
|
||||
using SimApi.Communications;
|
||||
|
||||
namespace YYApi.Helpers
|
||||
namespace SimApi.Helpers
|
||||
{
|
||||
/// <summary>
|
||||
/// 认证助手
|
||||
/// </summary>
|
||||
public class YYAuth
|
||||
public class SimApiAuth
|
||||
{
|
||||
private IDistributedCache Cache { get; }
|
||||
|
||||
public YYAuth(IDistributedCache cache)
|
||||
public SimApiAuth(IDistributedCache cache)
|
||||
{
|
||||
Cache = cache;
|
||||
}
|
||||
@@ -40,7 +40,7 @@ namespace YYApi.Helpers
|
||||
{
|
||||
uuid = Guid.NewGuid().ToString();
|
||||
}
|
||||
var loginItem = new YYLoginItem
|
||||
var loginItem = new SimApiLoginItem
|
||||
{
|
||||
Id = id,
|
||||
Type = type
|
||||
@@ -2,9 +2,9 @@
|
||||
using System.IO;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
|
||||
namespace YYApi.Helpers
|
||||
namespace SimApi.Helpers
|
||||
{
|
||||
public class YYUpload
|
||||
public class SimApiUpload
|
||||
{
|
||||
private string FilePathFolder = "/uploads/";
|
||||
public string FilePath
|
||||
@@ -28,12 +28,12 @@ namespace YYApi.Helpers
|
||||
|
||||
private IWebHostEnvironment Env { get; }
|
||||
|
||||
public YYUpload(IWebHostEnvironment env)
|
||||
public SimApiUpload(IWebHostEnvironment env)
|
||||
{
|
||||
Env = env;
|
||||
}
|
||||
|
||||
public class YYUploadInfo
|
||||
public class SimApiUploadInfo
|
||||
{
|
||||
public string Path { get; set; }
|
||||
public int Size { get; set; }
|
||||
@@ -47,7 +47,7 @@ namespace YYApi.Helpers
|
||||
/// <param name="path">存放路径</param>
|
||||
/// <param name="fileName">文件名</param>
|
||||
/// <returns></returns>
|
||||
public YYUploadInfo SaveFile(string base64, string ext = null, string path = null, string fileName = null)
|
||||
public SimApiUploadInfo SaveFile(string base64, string ext = null, string path = null, string fileName = null)
|
||||
{
|
||||
byte[] bt;
|
||||
var filePath = FilePath + path;
|
||||
@@ -85,7 +85,7 @@ namespace YYApi.Helpers
|
||||
/// <param name="fileName"></param>
|
||||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
public YYUploadInfo WriteFile(string filePath, string fileName, byte[] data)
|
||||
public SimApiUploadInfo WriteFile(string filePath, string fileName, byte[] data)
|
||||
{
|
||||
var realPath = Directory.GetCurrentDirectory() + "/wwwroot" + filePath;
|
||||
if (!Directory.Exists(realPath))
|
||||
@@ -93,7 +93,7 @@ namespace YYApi.Helpers
|
||||
Directory.CreateDirectory(realPath);
|
||||
}
|
||||
File.WriteAllBytes(realPath + fileName, data);
|
||||
return new YYUploadInfo
|
||||
return new SimApiUploadInfo
|
||||
{
|
||||
Path = filePath + fileName,
|
||||
Size = data.Length
|
||||
@@ -3,9 +3,9 @@ using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace YYApi.Helpers
|
||||
namespace SimApiApi.Helpers
|
||||
{
|
||||
public static class YYUtil
|
||||
public static class SimApiUtil
|
||||
{
|
||||
/// <summary>
|
||||
/// 检测手机号是否正确
|
||||
@@ -2,18 +2,18 @@
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.Caching.Distributed;
|
||||
using YYApi.Communications;
|
||||
using SimApi.Communications;
|
||||
|
||||
namespace YYApi.Middlewares
|
||||
namespace SimApi.Middlewares
|
||||
{
|
||||
/// <summary>
|
||||
/// 认证信息获取中间件
|
||||
/// </summary>
|
||||
public class YYAuthMiddleware
|
||||
public class SimApiAuthMiddleware
|
||||
{
|
||||
private RequestDelegate Next { get; }
|
||||
|
||||
public YYAuthMiddleware(RequestDelegate next)
|
||||
public SimApiAuthMiddleware(RequestDelegate next)
|
||||
{
|
||||
Next = next;
|
||||
}
|
||||
@@ -31,7 +31,7 @@ namespace YYApi.Middlewares
|
||||
var login = cache.GetString(token);
|
||||
if (login != null)
|
||||
{
|
||||
httpContext.Items.Add("LoginInfo", JsonSerializer.Deserialize<YYLoginItem>(login));
|
||||
httpContext.Items.Add("LoginInfo", JsonSerializer.Deserialize<SimApiLoginItem>(login));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using YYApi.Communications;
|
||||
using SimApi.Communications;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using YYApi.Exceptions;
|
||||
using SimApi.Exceptions;
|
||||
|
||||
namespace YYApi.Middlewares
|
||||
namespace SimApi.Middlewares
|
||||
{
|
||||
/// <summary>
|
||||
/// 异常处理中间件
|
||||
/// </summary>
|
||||
public class YYExceptionMiddleware
|
||||
public class SimApiExceptionMiddleware
|
||||
{
|
||||
private RequestDelegate Next { get; }
|
||||
private ILogger<YYExceptionMiddleware> Log { get; }
|
||||
private ILogger<SimApiExceptionMiddleware> Log { get; }
|
||||
|
||||
public YYExceptionMiddleware(RequestDelegate next, ILogger<YYExceptionMiddleware> log)
|
||||
public SimApiExceptionMiddleware(RequestDelegate next, ILogger<SimApiExceptionMiddleware> log)
|
||||
{
|
||||
Log = log;
|
||||
Next = next;
|
||||
@@ -23,12 +23,12 @@ namespace YYApi.Middlewares
|
||||
|
||||
public async Task InvokeAsync(HttpContext context)
|
||||
{
|
||||
var response = new YYBaseResponse();
|
||||
var response = new SimApiBaseResponse();
|
||||
try
|
||||
{
|
||||
await Next(context);
|
||||
}
|
||||
catch (YYApiException ex)
|
||||
catch (SimApiException ex)
|
||||
{
|
||||
response.SetCodeMsg(ex.Code, ex.Message);
|
||||
ErrorResponse(context, response);
|
||||
@@ -47,7 +47,7 @@ namespace YYApi.Middlewares
|
||||
/// </summary>
|
||||
/// <param name="context"></param>
|
||||
/// <param name="response"></param>
|
||||
private void ErrorResponse(HttpContext context, YYBaseResponse response)
|
||||
private void ErrorResponse(HttpContext context, SimApiBaseResponse response)
|
||||
{
|
||||
context.Response.StatusCode = 200;
|
||||
context.Response.Headers.Add("Content-Type", "application/json");
|
||||
@@ -9,15 +9,16 @@
|
||||
|
||||
```C#
|
||||
using Models;
|
||||
using SimApi.Controllers;
|
||||
|
||||
namespace Controllers
|
||||
{
|
||||
public class BaseController : YYApi.Controllers.BaseController
|
||||
public class BaseController : SimApiBaseController
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取登录用户信息
|
||||
/// </summary>
|
||||
protected LoginInfoItem LoginInfo => (LoginInfoItem) HttpContext.Items["LoginInfo"];
|
||||
protected SimApiLoginInfoItem LoginInfo => (SimApiLoginInfoItem) HttpContext.Items["LoginInfo"];
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -27,32 +28,32 @@ namespace Controllers
|
||||
```C#
|
||||
#Startup.cs
|
||||
|
||||
services.AddYYDoc("文档名称", "文档描述");
|
||||
services.AddSimApiDoc("文档名称", "文档描述");
|
||||
|
||||
app.UseYYDoc("名称",SubmitMethod[])
|
||||
app.UseSimApiDoc("名称",SubmitMethod[])
|
||||
|
||||
#控制器中可以直接使用特性
|
||||
|
||||
[YYDoc("分组","名称")]
|
||||
[SimApiDoc("分组","名称")]
|
||||
```
|
||||
|
||||
3. 简单的基于Redis的登录TOKEN服务
|
||||
|
||||
```C#
|
||||
#Startup.cs
|
||||
service.AddYYAuth();
|
||||
service.AddSimApiAuth();
|
||||
```
|
||||
添加时候, 可以从DI中获取 Auth 类,调用 Auth.Set(int,string) 将用户ID/类型和生成的Token绑定,本方法返回缓存中的Key名称
|
||||
|
||||
```C#
|
||||
#Startup.cs
|
||||
app.UseYYAuth();
|
||||
app.UseSimApiAuth();
|
||||
```
|
||||
调用本中间件,然后再需要登录认证的地方,使用 [YYAuth] 特性,即可完成检测登录相关的操作,
|
||||
如果需要获取用户的ID, 只需要 直接使用 LoginId 属性即可获取
|
||||
|
||||
4. 统一返回
|
||||
所有Response 均需要继承 BaseResponse类
|
||||
所有Response 均需要继承 SimApiBaseResponse类
|
||||
|
||||
|
||||
5. 异常处理
|
||||
@@ -60,9 +61,5 @@ app.UseYYAuth();
|
||||
|
||||
```C#
|
||||
#Startup.cs
|
||||
app.UseYYException();
|
||||
```
|
||||
|
||||
|
||||
### TODO:
|
||||
1. 增加HANGFIRE 支持redis和sqlite 存储, 支持 基于其他系统的TOKEN认证和独立账号密码认证
|
||||
app.UseSimApiException();
|
||||
```
|
||||
@@ -5,9 +5,9 @@
|
||||
<OutputType>Library</OutputType>
|
||||
<PackOnBuild>true</PackOnBuild>
|
||||
<Version>0.2.3</Version>
|
||||
<Authors>xRain@YYTech</Authors>
|
||||
<Authors>xRain@SimcuTeam</Authors>
|
||||
<Description>AspNetCore一个方便的API文档,捕获异常,统一输入输出的API类库</Description>
|
||||
<PackageId>YY-Tech.YYApi</PackageId>
|
||||
<PackageId>simcu.simapi</PackageId>
|
||||
<IsPackable>true</IsPackable>
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
<IncludeSymbols>true</IncludeSymbols>
|
||||
@@ -1,12 +1,12 @@
|
||||
using System;
|
||||
using YYApi.Helpers;
|
||||
using SimApi.Helpers;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.OpenApi.Models;
|
||||
using Swashbuckle.AspNetCore.SwaggerUI;
|
||||
using YYApi.Middlewares;
|
||||
using SimApi.Middlewares;
|
||||
|
||||
namespace YYApi
|
||||
namespace SimApi
|
||||
{
|
||||
/// <summary>
|
||||
/// 加入系统的扩展信息
|
||||
@@ -16,29 +16,29 @@ namespace YYApi
|
||||
//**********快捷添加**************
|
||||
|
||||
/// <summary>
|
||||
/// 添加整个YYAPI,同时增加CORS规则
|
||||
/// 添加整个SimApiAPI,同时增加CORS规则
|
||||
/// </summary>
|
||||
/// <param name="builder"></param>
|
||||
/// <param name="title"></param>
|
||||
/// <param name="description"></param>
|
||||
/// <returns></returns>
|
||||
public static IServiceCollection AddYYApi(this IServiceCollection builder, string title,
|
||||
public static IServiceCollection AddSimApiApi(this IServiceCollection builder, string title,
|
||||
string description = null)
|
||||
{
|
||||
return builder.AddYYAuth().AddYYDoc(title, description).AddCors().AddYYUpload();
|
||||
return builder.AddSimApiAuth().AddSimApiDoc(title, description).AddCors().AddSimApiUpload();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 使用所有YYApi自定义中间件
|
||||
/// 使用所有SimApiApi自定义中间件
|
||||
/// </summary>
|
||||
/// <param name="builder"></param>
|
||||
/// <param name="title"></param>
|
||||
/// <param name="staticFileroot"></param>
|
||||
/// <param name="submitMethods"></param>
|
||||
/// <returns></returns>
|
||||
public static IApplicationBuilder UseYYApi(this IApplicationBuilder builder, string title = "API文档", params SubmitMethod[] submitMethods)
|
||||
public static IApplicationBuilder UseSimApiApi(this IApplicationBuilder builder, string title = "API文档", params SubmitMethod[] submitMethods)
|
||||
{
|
||||
return builder.UseYYException().UseYYDoc(title, submitMethods).UseMiddleware<YYAuthMiddleware>().UseCors(x => x.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin()).UseYYUpload();
|
||||
return builder.UseSimApiException().UseSimApiDoc(title, submitMethods).UseMiddleware<SimApiAuthMiddleware>().UseCors(x => x.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin()).UseSimApiUpload();
|
||||
}
|
||||
|
||||
|
||||
@@ -50,9 +50,9 @@ namespace YYApi
|
||||
/// </summary>
|
||||
/// <param name="builder"></param>
|
||||
/// <returns></returns>
|
||||
public static IServiceCollection AddYYAuth(this IServiceCollection builder)
|
||||
public static IServiceCollection AddSimApiAuth(this IServiceCollection builder)
|
||||
{
|
||||
return builder.AddScoped<YYAuth>();
|
||||
return builder.AddScoped<SimApiAuth>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -60,9 +60,9 @@ namespace YYApi
|
||||
/// </summary>
|
||||
/// <param name="builder"></param>
|
||||
/// <returns></returns>
|
||||
public static IServiceCollection AddYYUpload(this IServiceCollection builder)
|
||||
public static IServiceCollection AddSimApiUpload(this IServiceCollection builder)
|
||||
{
|
||||
return builder.AddSingleton<YYUpload>();
|
||||
return builder.AddSingleton<SimApiUpload>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -72,7 +72,7 @@ namespace YYApi
|
||||
/// <param name="title">文档标题</param>
|
||||
/// <param name="description">文档描述</param>
|
||||
/// <returns></returns>
|
||||
public static IServiceCollection AddYYDoc(this IServiceCollection builder, string title,
|
||||
public static IServiceCollection AddSimApiDoc(this IServiceCollection builder, string title,
|
||||
string description = null)
|
||||
{
|
||||
return builder.AddSwaggerGen(x =>
|
||||
@@ -100,9 +100,9 @@ namespace YYApi
|
||||
/// </summary>
|
||||
/// <param name="builder"></param>
|
||||
/// <returns></returns>
|
||||
public static IApplicationBuilder UseYYException(this IApplicationBuilder builder)
|
||||
public static IApplicationBuilder UseSimApiException(this IApplicationBuilder builder)
|
||||
{
|
||||
return builder.UseMiddleware<YYExceptionMiddleware>();
|
||||
return builder.UseMiddleware<SimApiExceptionMiddleware>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -110,7 +110,7 @@ namespace YYApi
|
||||
/// </summary>
|
||||
/// <param name="builder"></param>
|
||||
/// <returns></returns>
|
||||
public static IApplicationBuilder UseYYUpload(this IApplicationBuilder builder)
|
||||
public static IApplicationBuilder UseSimApiUpload(this IApplicationBuilder builder)
|
||||
{
|
||||
return builder.UseStaticFiles(new StaticFileOptions
|
||||
{
|
||||
@@ -126,7 +126,7 @@ namespace YYApi
|
||||
/// <param name="title">文档标题</param>
|
||||
/// <param name="submitMethods">文档支持的提交方式(如果不指定,默认使用POST)</param>
|
||||
/// <returns></returns>
|
||||
public static IApplicationBuilder UseYYDoc(this IApplicationBuilder builder, string title,
|
||||
public static IApplicationBuilder UseSimApiDoc(this IApplicationBuilder builder, string title,
|
||||
params SubmitMethod[] submitMethods)
|
||||
{
|
||||
return builder.UseSwagger(x => x.RouteTemplate = "docs/{documentName}.json").UseSwaggerUI(x =>
|
||||
@@ -156,10 +156,10 @@ namespace YYApi
|
||||
/// <param name="title">文档标题</param>
|
||||
/// <param name="submitMethods">API提交方式定义</param>
|
||||
/// <returns></returns>
|
||||
public static IApplicationBuilder UseYYDocEx(this IApplicationBuilder builder, string title = "API文档",
|
||||
public static IApplicationBuilder UseSimApiDocEx(this IApplicationBuilder builder, string title = "API文档",
|
||||
params SubmitMethod[] submitMethods)
|
||||
{
|
||||
return builder.UseYYException().UseYYDoc(title, submitMethods);
|
||||
return builder.UseSimApiException().UseSimApiDoc(title, submitMethods);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -167,9 +167,9 @@ namespace YYApi
|
||||
/// </summary>
|
||||
/// <param name="builder"></param>
|
||||
/// <returns></returns>
|
||||
public static IApplicationBuilder UseYYAuth(this IApplicationBuilder builder)
|
||||
public static IApplicationBuilder UseSimApiAuth(this IApplicationBuilder builder)
|
||||
{
|
||||
return builder.UseMiddleware<YYAuthMiddleware>();
|
||||
return builder.UseMiddleware<SimApiAuthMiddleware>();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user