将Python类函数公开为REST服务

2024-06-01 20:23:48 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个Python库,其中包含一堆超级有用的函数。我希望能够通过RESTful接口调用这个lib的函数,使函数可用于任何支持套接字并希望使用它们的语言、应用程序或进程。在

我不想将每个函数单独编码为restfulpassthrough,因为有数百个可用函数,它们都可能会发生变化。有没有一种符合标准的方法来公开这些函数在REST上被访问?在

非常感谢您提供的任何想法、项目链接或建议:)

法国


Tags: 项目方法函数restrestful语言应用程序编码
2条回答

在你的问题下,我在评论中提出的是:


main.py

from flask import Flask
from flask import request

import functions

app = Flask(__name__)


@app.route('/call/<function_name>', methods=['GET', 'POST', 'PUT', 'DELETE'])
def call_function(function_name: str):
    function_to_call = getattr(functions, function_name)
    body = request.json
    return function_to_call(body)


app.run(host="0.0.0.0")

functions.py

^{pr2}$

请求示例:

  • 得到

http://localhost:5000/call/hello_world

  • 岗位

http://localhost:5000/call/hello_name

{
  "name": "Tom"
}

我现在正在为一些随机的devops工具做同样的事情。它不会成为RESTful端点工作的黄金标准,但有时您只需要一些快速而肮脏的东西。我是这样做的:

  1. 构建一个简单的烧瓶应用程序。Here's a good guide to get you started
  2. 对于您的特定用例,您将创建一个REST端点,并将其指向脚本。使用“GET”HTTP请求类型,以便可以使用URL参数。在
  3. 从那里,您可以传递URL上的参数。所以,如果你的脚本接受3个参数,在你的url'后面添加以下内容?foo=1&bar=2&blarg=3'

希望这有帮助。在

相关问题 更多 >