首页新闻找找看学习计划

webapi 路由规则 如何实现像支付宝那种指定一个地址、接口地址以传参的形式调用

0
悬赏园豆:50 [待解决问题]

如图:这个是支付宝api的调用说明,支付业务统一调用地址:https://openapi.alipay.com/gateway.do

需要调用的接口是以参数的形式传递进去的。

现在呢,我需要实现类似于这样的api接口提供给第三方调用,现在用的是MVC WebApi,需要改成这样的实现方式!

涉及到的问题:

1、路由的匹配问题

2、版本的控制问题

请大家给点思路或建议,提供一些文章也行,谢谢~

I-Can的主页 I-Can | 初学一级 | 园豆:121
提问于:2016-06-12 09:41
< >
分享
所有回答(2)
0

WebApi是符合REST风格的,所以你可能需要一个一般处理程序。

版本可以用不同类库区分。通过动态加载方式加载到程序里。

长蘑菇星人 | 园豆:1820 (小虾三级) | 2016-06-12 10:07

你好,能说的更加详细一点吗?需要一个一般处理程序去处理什么样的逻辑呢?

现在我想到了一中方式,但是这种方式感觉上不是很好。

支持(0) 反对(0) I-Can | 园豆:121 (初学一级) | 2016-06-12 10:17

@I-Can: 你既然只用一个地址,为什么还要用webapi。

支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2016-06-12 10:31
0

人家这是网关接入模式。

网关接入所有请求,然后在根据action路由到处理他的服务。

比如op.user.getusername,

可以路由到controller=user,action=getsuername。

可以路由到 user.taobao.com/getusername

等等去实现

czd890 | 园豆:7577 (大侠五级) | 2016-06-16 12:50

可以再说的详细点吗?我现在想的是:怎么结合用webapi去实现这些,如果提供一个请求地址,首先在路由里面就要取到method=“op.user.getusername”这个参数,然后分解出来、匹配上对应的路由到controller=user,action=getsuername 等等。
这些都是我自己单方面的思路,想多听点思路。谢谢

支持(0) 反对(0) I-Can | 园豆:121 (初学一级) | 2016-06-16 13:55

@I-Can: 

route map的时候,实现自己的constraints,实现接口IHttpRouteConstraint的一个自定义类。

然后重写match方法。从request里面解析出来op.user.getusername。在根据你自己的规则重新赋值action和controller

具体用户请google

支持(0) 反对(0) czd890 | 园豆:7577 (大侠五级) | 2016-06-16 14:47

@calvinK: 

类似:

match(request,。。。。。values){

var action=request[method]

var controller=request[controler]

values[action]=action

values[controller]=controller

}

支持(0) 反对(0) czd890 | 园豆:7577 (大侠五级) | 2016-06-16 14:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册