- 新增 IApiResponse 统一响应契约,覆盖普通响应和分页响应
- 扩展端点映射,支持 IApiResponse 和带请求 DTO 的 MapXxx 重载
- 增加 Body、Query、Route Values 到请求 DTO 的自动绑定
- 增加 PC 端路由模式匹配,支持 {id} 和 {id:int}
- API 与 PC 端点上下文补充路由参数传递
- 调整 OpenAPI 请求类型处理,避免 GET/DELETE 被标记为 JSON Body
- 鉴权端点迁移到强类型请求绑定和 IApiResponse 返回
- 增加统一端点文件流响应支持
61 lines
2.3 KiB
C#
61 lines
2.3 KiB
C#
using Avalonia_Common.Core;
|
||
using Avalonia_Services.Core;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace Avalonia_Services.Services.AuthService
|
||
{
|
||
/// <summary>
|
||
/// API 鉴权端点服务接口,定义登录、刷新 Token 和登出操作。
|
||
/// </summary>
|
||
public interface IApiAuthEndpointService
|
||
{
|
||
/// <summary>
|
||
/// 处理用户登录请求。
|
||
/// </summary>
|
||
/// <param name="ctx">服务端点上下文。</param>
|
||
/// <returns>包含 Token 的认证响应。</returns>
|
||
Task<IApiResponse> LoginAsync(ApiLoginRequest request, ServiceEndpointContext ctx);
|
||
|
||
/// <summary>
|
||
/// 使用 Refresh Token 刷新 Access Token。
|
||
/// </summary>
|
||
/// <param name="ctx">服务端点上下文。</param>
|
||
/// <returns>新的 Token 对。</returns>
|
||
Task<IApiResponse> RefreshAsync(ApiRefreshTokenRequest request, ServiceEndpointContext ctx);
|
||
|
||
/// <summary>
|
||
/// 处理用户登出请求。
|
||
/// </summary>
|
||
/// <param name="ctx">服务端点上下文。</param>
|
||
/// <returns>登出结果。</returns>
|
||
Task<IApiResponse> LogoutAsync(ApiLogoutRequest request, ServiceEndpointContext ctx);
|
||
}
|
||
|
||
/// <summary>
|
||
/// PC 端鉴权端点服务接口,定义授权码登录、Token 刷新和登出操作。
|
||
/// </summary>
|
||
public interface IPcAuthEndpointService
|
||
{
|
||
/// <summary>
|
||
/// 使用授权码进行登录授权。
|
||
/// </summary>
|
||
/// <param name="ctx">服务端点上下文。</param>
|
||
/// <returns>包含 Token 的认证响应。</returns>
|
||
Task<IApiResponse> AuthorizeAsync(PcAuthorizeRequest request, ServiceEndpointContext ctx);
|
||
|
||
/// <summary>
|
||
/// 刷新当前 Token。
|
||
/// </summary>
|
||
/// <param name="ctx">服务端点上下文。</param>
|
||
/// <returns>新的 Token 响应。</returns>
|
||
Task<IApiResponse> RefreshAsync(PcRefreshRequest request, ServiceEndpointContext ctx);
|
||
|
||
/// <summary>
|
||
/// 处理用户登出请求。
|
||
/// </summary>
|
||
/// <param name="ctx">服务端点上下文。</param>
|
||
/// <returns>登出结果。</returns>
|
||
Task<IApiResponse> LogoutAsync(PcLogoutRequest request, ServiceEndpointContext ctx);
|
||
}
|
||
}
|