2024-09-17 14:20:27 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Serein.Library.Web
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 表示参数为url中的数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class UrlAttribute : Attribute
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 表示入参参数为整个boby的数据
|
|
|
|
|
|
/// <para>
|
|
|
|
|
|
/// 例如:User类型含有int id、string name字段</para>
|
|
|
|
|
|
/// <para>
|
|
|
|
|
|
/// ① Add(User user)</para>
|
|
|
|
|
|
/// <para>请求需要传入的json为
|
|
|
|
|
|
/// {"user":{
|
|
|
|
|
|
/// "id":2,
|
|
|
|
|
|
/// "name":"李志忠"}}</para>
|
|
|
|
|
|
/// <para>
|
|
|
|
|
|
/// ② Add([Boby]User user)</para>
|
|
|
|
|
|
/// <para>请求需要传入的json为
|
|
|
|
|
|
/// {"id":2,"name":"李志忠"}</para>
|
|
|
|
|
|
///
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class BobyAttribute : Attribute
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
2024-10-11 16:46:16 +08:00
|
|
|
|
/// 标记该类为 Web Api 处理类
|
2024-09-17 14:20:27 +08:00
|
|
|
|
/// </summary>
|
2025-07-23 15:57:57 +08:00
|
|
|
|
public class WebApiControllerAttribute : Attribute
|
2024-09-17 14:20:27 +08:00
|
|
|
|
{
|
|
|
|
|
|
public string Url { get; }
|
2025-07-23 15:57:57 +08:00
|
|
|
|
public WebApiControllerAttribute(string url = "")
|
2024-09-17 14:20:27 +08:00
|
|
|
|
{
|
|
|
|
|
|
this.Url = url;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 方法的接口类型与附加URL
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[AttributeUsage(AttributeTargets.Method)]
|
|
|
|
|
|
public class WebApiAttribute : Attribute
|
|
|
|
|
|
{
|
2024-10-10 16:49:37 +08:00
|
|
|
|
public ApiType ApiType; // HTTP 请求类型
|
2024-09-17 14:20:27 +08:00
|
|
|
|
public string Url; // URL 路径
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 方法名称不作为url的部分
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public bool IsUrl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 假设UserController.Add()的WebAPI特性中
|
|
|
|
|
|
/// http是HTTP.POST
|
|
|
|
|
|
/// url被显示标明“temp”
|
|
|
|
|
|
/// 那么请求的接口是POST,URL是
|
|
|
|
|
|
/// [http://localhost:8080]/user/add/temp
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="http"></param>
|
|
|
|
|
|
/// <param name="url"></param>
|
2024-10-10 16:49:37 +08:00
|
|
|
|
public WebApiAttribute(ApiType http = ApiType.POST, bool isUrl = true, string url = "")
|
2024-09-17 14:20:27 +08:00
|
|
|
|
{
|
2024-10-10 16:49:37 +08:00
|
|
|
|
ApiType = http;
|
2024-09-17 14:20:27 +08:00
|
|
|
|
Url = url;
|
|
|
|
|
|
IsUrl = isUrl;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-10 16:49:37 +08:00
|
|
|
|
public enum ApiType
|
2024-09-17 14:20:27 +08:00
|
|
|
|
{
|
|
|
|
|
|
POST,
|
|
|
|
|
|
GET,
|
|
|
|
|
|
//PUT,
|
|
|
|
|
|
//DELETE
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|