我有一個燒瓶路線,可以根據半徑向我的資料庫查詢位置和服務。測驗和使用 POSTMAN。
@bp.route('/provider-locations/<int:radius>', methods=['GET'])
def get_locations_from_radius(radius):
user_latitude = request.json['lat']
user_longitude = request.json['lng']
my_obj = {}
my_obj_container = []
locations = db_session.query(ProviderLocation).filter(\
func.acos(func.sin(func.radians(user_latitude)) \
* func.sin(func.radians(ProviderLocation.latitude)) \
func.cos(func.radians(user_latitude)) * \
func.cos(func.radians(ProviderLocation.latitude)) * \
func.cos(func.radians(ProviderLocation.longitude) - \
(func.radians(user_longitude)))) * 6371 <= radius)
for location in locations:
services = db_session.query(ProviderService).select_from(ProviderService).join(\
ServiceLocationLink).filter(ServiceLocationLink.location_id == location.id).all()
my_obj = provider_location_list_schema.dump(location)
my_obj['services'] = [provider_service_list_schema.dump(service) for service in services]
my_obj_container.append(my_obj)
return jsonify(my_obj_container)
我的錯誤在于試圖從我的客戶(React)傳遞這個 req 預期的引數。我不斷收到 400 回應。
export async function getLocationServicesByRadius(radius, user_address) {
try {
const body = {
lat: user_address.lat,
lng: user_address.lng
}
return await awsApiRequest({
method: 'GET',
path: `/provider-locations/${radius}`,
params: {
body: body
},
});
} catch (err) {
console.log(err.message)
}
}
const fetchLocationServices = async () => {
const userAddress = {
lat: 43.829640,
lng: -79.470310
}
const { data, success, errorMessage } = await getLocationServicesByRadius(userDistance, userAddress)
if (success) {
console.log('RADIUS =>', data)
} else {
console.log(errorMessage)
}
}
我一定在某處遺漏了一些東西,但不知道為什么 req 回傳 400。
客戶的身體看起來像這樣:
{
lat: 43.82964
lng: -79.47031
}
uj5u.com熱心網友回復:
在燒瓶request.json中用于訪問 POST 請求正文,對于 GET 請求使用request.args.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/427856.html
上一篇:(AWSS3)顯示檔案所有權
