asp.net web api统一接口调用

wtj2832 2015-07-06 03:14:25
web api如何做到统一接口调用:
如 :
xxx.com/api?method=user.get,
xxx.com/api?method=user.create

仿照淘宝开放平台接口一样,路由可以做到吗,还是必须通过反射?
...全文
526 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
类型初始化方法的名字写错了,应该是
static Default()
自己修改一下。 在这里,应该注册百八十个 IHttpHandler 命令处理程序,也就是处理 method 参数的程序。
  • 打赏
  • 举报
回复
引用 7 楼 wtj2832 的回复:
[quote=引用 6 楼 happy184 的回复:] 顶下,楼主,我也想统一调用入口,正在纠结中,有方案了吗?
通过反射肯定是可以的,但是我想看看有没有其他更好的方式[/quote] 没人能从这个话里能清楚地理解你的“是可以的.....其他更好的方式”是什么意思,除非你已经写出你的做法。
  • 打赏
  • 举报
回复
可以这样设计你的网站的首页:
<%@ WebHandler Language="C#" Class="Default" %>

using System;
using System.Web;
using System.Collections.Generic;

public class Default: IHttpHandler
{

    private static Dictionary<string, IHttpHandler> dic = new Dictionary<string, IHttpHandler>();

    static TestCommand()
    {
        dic.Add("user.get", new GetUser());
    }

    public void ProcessRequest(HttpContext context)
    {
        var cmd = context.Request.QueryString["method"];
        IHttpHandler handler;
        if (!dic.TryGetValue(cmd, out handler))
        {
            context.Response.StatusCode = 404;
            return;

        }

        if (!handler.IsReusable)
            handler = (IHttpHandler)Activator.CreateInstance(handler.GetType());
        handler.ProcessRequest(context);
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}
happy184 2015-07-06
  • 打赏
  • 举报
回复
引用 7 楼 wtj2832 的回复:
[quote=引用 6 楼 happy184 的回复:] 顶下,楼主,我也想统一调用入口,正在纠结中,有方案了吗?
通过反射肯定是可以的,但是我想看看有没有其他更好的方式[/quote] 这样是可以,但是怎么做验证,很多API需要用户登录的,难道每个API手工调用验 证?
wtj2832 2015-07-06
  • 打赏
  • 举报
回复
引用 6 楼 happy184 的回复:
顶下,楼主,我也想统一调用入口,正在纠结中,有方案了吗?
通过反射肯定是可以的,但是我想看看有没有其他更好的方式
happy184 2015-07-06
  • 打赏
  • 举报
回复
顶下,楼主,我也想统一调用入口,正在纠结中,有方案了吗?
wtj2832 2015-07-06
  • 打赏
  • 举报
回复
沉的好快啊,救命
wtj2832 2015-07-06
  • 打赏
  • 举报
回复
有做过的朋友吗?
wtj2832 2015-07-06
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
统一接口真的好吗? webapi也是可以重写路由匹配方案的
没什么好不好的,就是想实现这样的效果,重写路由有例子吗
  • 打赏
  • 举报
回复
统一接口真的好吗? webapi也是可以重写路由匹配方案的

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧