【问题标题】:How to call another service post method from another service in flask如何从烧瓶中的另一个服务调用另一个服务发布方法
【发布时间】:2020-07-08 21:27:57
【问题描述】:

我正在开发一个分离 API 和服务层的烧瓶应用程序。例如,我有一个名为 ServiceOne 的服务和另一个 ServiceTwo。我想从 serviceOne 调用 serviceTwo 的 post 方法。因此 serviceTwo 的 post 方法使用烧瓶请求读取数据,那么正确的方法是什么?

#service 1:

service_two = ServiceTwo()
req_data = {'': '', '':''}
service_two.post()

#service 2:
from flask import request

def post():
  req_data = request.json

P.S:我想避免通过控制器层来访问服务,因为据我所知,在服务层内调用控制器层并不是一个好习惯。

【问题讨论】:

  • 这能回答你的问题吗? stackoverflow.com/questions/25149493/…
  • @ngShravil.py 不幸的是不是因为它通过“url”调用服务,这意味着它将首先进入控制器层,然后进入我不想做的服务层。如果我调用外部服务,那很好,但是我是从我的应用服务调用的,这就是为什么我要避免这种方式。
  • 好的,很抱歉,我对这种场景不太熟悉。反正。我正在为这个问题投票,我会继续关注它。
  • 没什么好担心的。谢谢!一种解决方案可以是:在服务类中编写另一种方法来接受请求正文作为参数并处理这些值。但是我很好奇是否可以使用一种特定的方法来解决它?像我可以自己创建烧瓶请求正文或我不知道的任何其他方式吗

标签: python rest flask python-requests


【解决方案1】:

我认为这很复杂。您可以轻松地将所需的参数数量发送到 post 方法。因此 request.json 可以作为参数从 api 层发送到服务层。因此,即使您从另一个服务调用,您也只需使用适当的参数调用该方法

#service 1:

service_two = ServiceTwo()
req_data = {'': '', '':''}
service_two.post(req_data=request_data)

#service 2:
from flask import request

def post(req_data):
   ...

【讨论】:

    猜你喜欢
    • 2014-09-28
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2018-05-29
    • 2011-02-16
    相关资源
    最近更新 更多