我必须使该端点通过我的api或服务进行:加法运算仅返回a
和b
的加法运算以及de除法的相同运算。最后一条路由必须以json格式返回,并带有通过url发送的json。
addition/{a}/{b}
,division/{a}/{b}
和
url/json
如何使用这种方式从URL获取多个参数。我已经知道这种方式->
@app.route('/api/addition/', methods=['GET'])
def add():
a = request.args.get('a')
b = request.args.get('b')
(... some stuff ...)
还有其他方法吗?
感谢您的帮助,抱歉英语不是我的母语,也许我在语法上犯了一些错误。我对此表示歉意。 viviramji。
答案 0 :(得分:1)
这可能有帮助。
POST
请求Flask
API。您可以发送自定义数据和所需的任何类型的操作。您可以使用postman
测试以下代码。确保您从postman
发送的原始数据是application/json
类型。
from flask import Flask, url_for, json,request, Response, jsonify
app = Flask(__name__)
@app.route('/api/addition/', methods=['POST'])
def add():
requestJson = request.json
print(requestJson)
val1 = requestJson['val1']
val2 = requestJson['val2']
operation = requestJson['operation']
respDict = {"Message":None,"Value":None}
if operation.lower() == "addition":
val = val1 + val2
respDict['Message']="addition"
if operation.lower() == "division":
respDict['Message']="division"
val = val1/val2
respDict['Value']=val
resp = Response(json.dumps(respDict), status = 200)
return resp
import sys
if __name__ == '__main__':
if(len(sys.argv) > 1):
portString = sys.argv[1]
else:
portString = "5200"
app.run(
host = "0.0.0.0",
port=int(portString),
debug=True,
threaded = True)
这里是requestJson
{
"val1":3,
"val2":2,
"operation":"addition"
}
免责声明:这可能无法完全回答您的问题,但可以解决您的问题。
答案 1 :(得分:0)
您可以创建一个接受两个值以及所需操作类型的路由:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:GetData>
<!--Optional:-->
<tem:val>2000</tem:val>
</tem:GetData>
</soapenv:Body>
</soapenv:Envelope>