Skip to content
Henry edited this page Oct 11, 2019 · 1 revision

引用组件

image

可以通过Nuget安装组件,组件基于netstandard2.0可运行在多平台上。

定义服务接口

组件对接口的定义没特别的要求,只需要制定相应的请求方法和参数。

    public interface INorthWind
    {
        Task<Employee> GetEmployee(int id);
        [Post]
        Task<Employee> Add(Employee emp);
        [Post]
        Task<bool> Login(string name, string value);       
        [Post]
        Task<Employee> Modify([CQuery]int id, Employee body);
    }

以止请求接口所有方法请求的路径是/,对应的Url是方法名称。在返回值定义上建议使用Task返回类型,这样可以更好地利用网络的异常步处理机制,提供更好的性能。

请求方式

组件支持四种请求方式,分别是:GET(默认不需要配置),POST,PUTDELETE;可以通过不同的Attribute描述来方法对应不同的请求类型。

定义路径

所有接口定义的方法默认都在/路径下,如果需要指定接口对应的子路径可以在接口上标记Controller属性,具体操作如下:

    [Controller(BaseUrl ="northwind")]
    public interface INorthWind

以上定义的接口的基础路径是/northwind/.如果定义的方法和请求的Url路径不一样,可以在相关请求属性上指定对应的Route属性,如下:

    [Get(Route = "Header")]
    Task<bool> Header1();

针对以上接口Header1方法的请求路径是/northwind/header

调用

HttpClusterApi httpClusterApi = new HttpClusterApi();
httpClusterApi.DefaultNode.Add("http://localhost:8080");
northWind = httpClusterApi.Create<INorthWind>();
var result = await northWind.GetEmployee(1);

组件通过集群化调用的HttpClusterApi对象来管理请求,创建对象需要在对应的Url节点添加相应的服务地址;以上代码是在DefaultNode上添加地址,DefaultNode是组件是默认Url规则.定义服务后就可以创建对应的接口代理,通过代理接口操作即可以完成WebApi调用。

设置提交格式

组件默认是以Json的格式进行数据提交和获取;具体使用那种方式可以根据实情况来设置,组件内置了:application/jsonapplication/x-www-form-urlencoded.如果想明确使用的提交格式,可以在接口或方法中定义相关属性具体如下:

 [FormUrlFormater]
 public interface INorthWind