我有这样的休息api
@route("/api/v1/device/", methods=["GET", "POST"])
我可以将此用户定义的命令用于此路由,而不是使用CURL
命令吗?
EG。 #show devices
我知道我可以使用这个api周围的python-wrapper来实现它。有没有其他方法或更好的方法来做到这一点
答案 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客户端)......
最好的情况是将您的控制器代码(解析请求和返回数据)与您的服务代码(执行操作并返回结果)分开。因此,您的服务可以从任何地方调用。