跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教大家个问题,一个 post 接口如何实现处理多个业务请求?
未分類
24 11 月 2020

请教大家个问题,一个 post 接口如何实现处理多个业务请求?

请教大家个问题,一个 post 接口如何实现处理多个业务请求?

資深大佬 : Yiso1573 4

最近做外部数据接入,对方文档里提供了一个 post 的服务地址,其他的业务参数都在请求体里( json 格式),然后里面有个 method 参数对应各个业务接口。

好奇他内部是如何实现的,我猜想的是接口解析这个参数再调用内部对应的服务,如果是这样那么这样设计的优劣势是什么?

其实主要问题是他们有部分接口是主动调用我们系统,实现方式和他们接口一毛一样,有点怕做得不规范,所以来请教下大家。java

大佬有話說 (14)

  • 資深大佬 : boris93

    做起来不就是
    switch(method) {
    case “methodA”:
    doMethodA(); break;
    case “methodB”:
    doMethodB();break;
    default:
    fxxkItUp();break;
    }

    这种好像有点像过去 WebService 那种?一个 endpoint,请求里面带方法名这种操作。
    现在应该是很不推荐这种做法了吧。

    调你们接口的方式,你们说话管用那就按你们的办法来,不然就听他们的呗。什么是规范?谁说话好使谁就是规范。

  • 資深大佬 : chinvo

    也可能是网关处理的

  • 資深大佬 : PHPer233

    我见过这样的代码,就像一回复的那样执行相应的流程。

  • 資深大佬 : luob

    graphql 直呼内行。

    如果你试过手撸一个 web 框架会发现,这种编程式路由简单粗暴, 不用乱翻 http 各种标准一条条往上套,不用折腾来折腾去那一串乱七八糟的 url, 实现起来比 restful 那一套简单多了。

  • 資深大佬 : DarkCat123

    mapping func.

    type HandleFunc func( handerRequest) ( response , err );

    act := make( map[string]HandleFunc);
    return act[ methodRequest];

  • 資深大佬 : tesguest123

    概括下就是通过 type 参数判断,if else if. else”

  • 資深大佬 : ztechstack

    封装一个接口一个统一的入口方法,一个注解(功能号)。每个功能的 Service 实现这个接口,同时在 Service 上带上注解。
    在程序初始化时把这些 service 放到 Map<功能号, service>,然后入口处解析到功能号然后调用入口方法。
    PS. 我会把功能号放到 url 里。

  • 資深大佬 : dustinth

    本质上和实现上没有区别, 只是 API 的表现方式不一样: 是把路由规则放到 http 规范层面还是放到业务层面. 做的好的, 切换两种方式可能就是一两行代码的事情.

  • 資深大佬 : mazyi

    restful 的目的是规范,随便换一个人马上可以撸一套新的,这个嘛就是相反

  • 資深大佬 : VANHOR

    饿了么的接口就是这样的。

  • 資深大佬 : hdfg159

    就 if else,这思想就是消息分发器的思想,平时用地址区分那是 web 框架做好了

  • 資深大佬 : PopRain

    有点像强类型和弱类型的调用,我还是喜欢有明确的方法(强类型)

  • 資深大佬 : namelosw

    你要拿 REST 当规范的话, 这个不算 REST. REST 里面 POST 是用来创建资源的. 如果想 REST, 就要设计更多资源, 而不是更多的 verb 或者 method, 区别和这个挺大的.

    本质上这个 diapatch 的方式是模拟 RPC, 方法+参数其实就是模拟一个远程的函数. 不过我觉得到没有太大问题, 就是团队达成一致就行. 还有就是不同情况返回值的类型要处理好就行.

  • 資深大佬 : Elissa

    艹,这说的不就是我吗,野路子后端,php 写个 gateway.php ,接收 type 和 action,再用 switch 去分不同的业务接口

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具