我正在启动一个新的Python项目来帮助我学习Python语言。我是一名C#开发人员,对restapi非常熟悉,但我觉得Python中缺少了一些东西。我是用Flask RESTPlus写这篇文章的,并且一直遵循一些例子来让它工作。就目前的情况而言,我确实有一个可以工作的API,但我正在努力找出最后一个问题。你知道吗
我需要能够创建一个接受数字路由参数的API端点,而不管它是否是浮点的int。你知道吗
如果我添加多个路由,我可以让API正常工作,但必须有更好的方法。你知道吗
我的一个端点:
ns_area = Namespace('Area', description='Area calculations')
@ns_area.route('/Acre/<float:input>/ToSquareFoot')
class ConversionsArea(Resource):
def get(self, input):
input = float(input)
return area.acre_to_ft2(input)
这将返回一个正确的计算
curl -X GET "http://127.0.0.1:5000/api/v1/Area/Acre/1.2/ToSquareFoot" -H "accept: application/json"
这将返回404,因为route参数不是浮点数
curl -X GET "http://127.0.0.1:5000/api/v1/Area/Acre/1/ToSquareFoot" -H "accept: application/json"
另外,如果没有类型标识符,则默认为字符串。你知道吗
我真的不想重复这样的路线。你知道吗
ns_area = Namespace('Area', description='Area calculations')
@ns_area.route('/Acre/<float:input>/ToSquareFoot')
@ns_area.route('/Acre/<int:input>/ToSquareFoot')
class ConversionsArea(Resource):
def get(self, input):
input = float(input)
return area.acre_to_ft2(input)
您可以在路径中使用
string
,并计算它是否可以转换为float
。如果不是,则引发ValueError
并打印正确的消息。你知道吗相关问题 更多 >
编程相关推荐