用Python编写公开API的应用程序

用Python编写公开API的应用程序,python,api,frameworks,web-frameworks,Python,Api,Frameworks,Web Frameworks,作为练习,我想用Python编写一个应用程序,它可以运行代码来管理资源或做其他事情,同时可以为API提供服务,以便客户端可以通过网络与它通信 该应用程序将提供一个为客户端运行代码的环境,但验证用户是否可以执行其请求(以查看是否安全),然后继续运行运行状况检查(这些检查也可以由用户指定如何运行) 例如: POST TO: https://api.service.com/login { "username": "user1", "password": "password" } RE

作为练习,我想用Python编写一个应用程序,它可以运行代码来管理资源或做其他事情,同时可以为API提供服务,以便客户端可以通过网络与它通信

该应用程序将提供一个为客户端运行代码的环境,但验证用户是否可以执行其请求(以查看是否安全),然后继续运行运行状况检查(这些检查也可以由用户指定如何运行)

例如:

POST TO: https://api.service.com/login
{
    "username": "user1",
    "password": "password"
}

RESPONSE: 200 OK
{
    "token": "akJuHgehd...LNabCt"
}

POST TO: https://api.service.com/newResource
{
    "token": "akJuHgehd...LNabCt",
    "command": "start_daemon.sh",
    "health_check": "check_daemon.sh"
}
一旦应用程序确保允许用户
user1
运行
start\u daemon.sh
并使用
check\u daemon.sh
进行健康检查:

RESPONSE: 200 OK
{
    "service_id": "ahcyYDmD...PabYTEf"
}
然后,客户端可以将此ID存储在本地以管理其资源,或者稍后向服务器请求有关其自身运行的所有资源的信息,然后使用这些信息来管理它们

注意,这不一定是RESTful API,只是一个通用HTTP API,即使我使用的名称(如参考资料)和
/newResource
路径可能表明它是RESTful API

在我的研究中,我寻找了许多可以让这个API易于实现的框架。最容易做到这一点的是Django。它允许直接处理HTTP请求、JSON序列化、良好的ORM、可用于cookie和会话的身份验证框架以及许多其他可供使用的资源。但在Django内部运行的每一个代码都必须由HTTP请求触发(据我所知):Django不允许为在引导时运行的代码使用API,然后在这段代码中,我可以运行新的线程,这些线程将准备基本的基础结构和调度函数,这些函数将运行健康检查并执行任何其他必要的操作

此外,还有其他框架,如Flask、Tornado和其他框架,但这些框架缺少许多功能,如身份验证,有时甚至是HTTP请求、ORMs等的抽象

还有Python的标准库,比如
threading
BaseHTTPServer
,等等,可以让我从头开始构建这个应用程序,但我觉得没有必要深入研究


所以实际的问题是:在Python中实现这一点的方法是什么,哪种方法最简单?为什么呢?

没错,谢谢你解决了这个问题!