python restful接口开发实例_Python restful.Resource方法代码示例

这篇博客介绍了如何使用Flask-RESTful库创建一个API,该API为landmarker.io提供服务,处理资产的地标和模板数据。通过定义`Landmark`和`LandmarkList`资源类,实现了获取、保存和列出地标信息的功能,并支持CORS跨域请求。此外,还展示了如何将这些资源注册到API中。
摘要由CSDN通过智能技术生成

# 需要导入模块: from flask.ext import restful [as 别名]

# 或者: from flask.ext.restful import Resource [as 别名]

def add_lm_endpoints(api, lm_adapter, template_adapter):

r"""

Generate a Flask App that will serve meshes landmarks and templates to

landmarker.io

Parameters

----------

adapter: :class:`LandmarkerIOAdapter`

Concrete implementation of the LandmarkerIOAdapter. Will be queried for

all data to pass to landmarker.io.

dev: `bool`, optional

If True, listen to anyone for CORS.

Returns

-------

api, app, api_endpoint

"""

class Landmark(Resource):

def get(self, asset_id, lm_id):

err = "{} does not have {} landmarks".format(asset_id, lm_id)

try:

return lm_adapter.load_lm(asset_id, lm_id)

except Exception as e:

try:

return template_adapter.load_template(lm_id)

except Exception as e:

return abort(404, message=err)

def put(self, asset_id, lm_id):

try:

return lm_adapter.save_lm(asset_id, lm_id, request.json)

except Exception as e:

print(e)

return abort(409, message="{}:{} unable to "

"save".format(asset_id, lm_id))

# Need this here to enable CORS put see http://mzl.la/1rCDkWX

def options(self, asset_id, lm_id):

pass

class LandmarkList(Resource):

def get(self):

return lm_adapter.asset_id_to_lm_id()

class LandmarkListForId(Resource):

def get(self, asset_id):

return lm_adapter.lm_ids(asset_id)

lm_url = partial(url, Endpoints.landmarks)

api.add_resource(LandmarkList, lm_url())

api.add_resource(LandmarkListForId, asset(lm_url)())

api.add_resource(Landmark, asset(lm_url)(''))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值