代码写API

1、代码写API

写在任何地方都可以,只DLL注册到了都能识别

//注册ReZero.Api
builder.Services.AddReZeroServices(api =>
{ 
    var apiObj = SuperAPIOptions.GetOptions("rezero.json");
 
    //注册DLL 
    var assemblyList = Assembly
             .GetExecutingAssembly()
             //根据dll命过滤出需要的
             .GetAllDependentAssemblies(it => it.Contains("MyProject"))
             .ToArray();
 
    apiObj!.DependencyInjectionOptions = new DependencyInjectionOptions(assemblyList);
    api.EnableSuperApi(apiObj);
 
});

1.1 完整示例

/// <summary>
/// 动态接口
/// </summary>
[Api(200100, GroupName = "分组1")]//第一个参数是分类ID , 分组就是菜单下的分类
public class MyApiController
{ 
    [ApiMethod("我是A方法")]
    public int A(int num,int num2) //默认
    {
      return num+num2;
    } 
}

image.png

1.2 上传文件

[ApiMethod("我是B方法")]
public string B(byte[] file)//文档参数用byte[]
{
   return "文件长度"+ file.Length;
}

1.3 设置Http类型

 [ApiMethod("我是C方法", HttpMethod = HttpType.Post)]//设置接口类型
 public string C(string a)//可以是一个类对象
 {
      return a;
 }

1.4 类作为参数

[ApiMethod("我是D方法")]
public Object D(ClassA classA)//可以是一个类对象
{
    return classA;
}

1.5 设置URL

默认: 是 api/分类id/类名/方法

自定义: URL+方法名

版本要求:1.6.12+

    /// <summary>
    /// 动态接口
    /// </summary>
    [Api(200100, GroupName = "分组1",Url= "/api/MyApiController")]
    public class MyApiController
    { 
    
        [ApiMethod("我是A方法")]
        public int A(int num,int num2) //方法里面如果设置URL会覆盖类中URL
        {
            return num+num2;
        }
     }

1.6 格式化URL : /{参数1}/{参数2}

版本要求:1.6.12+


image.png

 [ApiMethod("我是D方法")]
 [UrlParameters]//启用格式化URL ,参数只能是int string这种基础类型
 public int D(int num, int num2)
 {
   return num + num2;
 }

2、无代码API

通过界面去创建API,真正的无代码创建

image.png

详细文档:https://www.donet5.com/Doc/32/2610


果糖网