用户定义的命令而不是REST api的curl

时间:2015-09-01 15:13:49

标签: python rest

我有这样的休息api

@route("/api/v1/device/", methods=["GET", "POST"])

我可以将此用户定义的命令用于此路由,而不是使用CURL命令吗?

EG。 #show devices

我知道我可以使用这个api周围的python-wrapper来实现它。有没有其他方法或更好的方法来做到这一点

1 个答案:

答案 0 :(得分:1)

Ryu正在使用WSGI,因此您可以使用任何WSGI客户端从代码中查询路由:

werkzeug的例子:

from werkzeug.test import Client
from werkzeug.wrappers import Response

client = Client(current_app, response_wrapper=Response)
res = client.open(
    method='GET',
    path='/api/v1/device/'
)

注意:Ryu似乎使用webob所以你可能想要使用它(我不知道它是否提供非http客户端)......

最好的情况是将您的控制器代码(解析请求和返回数据)与您的服务代码(执行操作并返回结果)分开。因此,您的服务可以从任何地方调用。