美文网首页Flask与敏捷开发
Flask AppBuilder RESTful API 重建

Flask AppBuilder RESTful API 重建

作者: 小鱼儿他老汉 | 来源:发表于2018-01-10 10:56 被阅读155次

Flask AppBuilder自带REST API,但是这个REST API其实是AJAX目的,换而言之是自己网站使用的。由于后台模型的CURD操作,其API路径是这样的:

http://{domain}/{modelview}/api
http://{domain}/{modelview}/api/list
http://{domain}/{modelview}/api/create
http://{domain}/{modelview}/api/delete
http://{domain}/{modelview}/api/read
http://{domain}/{modelview}/api/update

我还真担心是否可以用于安全相关应用中。

而提供给移动APP和第三方应用需要额外的RESTFul API,并支持行业标准的认证算法。好在FAB和Flask的其他组件兼容性比较好。我试了一试:

class ApiView(BaseView):
    route_base = "/apiv1"
    default_view = "list"

    @expose("/list", methods=['GET'])
    def list(self):
        return jsonify({'res':'OK','apis':['/apiv1/devices','/apiv1/accesses','/apiv1/accounts']})

    @expose("/devices", methods=['GET'])
    def devices(self):
        return jsonify({'res':'OK','devices':["list of devices"]})

    @expose("/accesses", methods=['GET'])
    def accesses(self):
        return jsonify({'res':'OK','accesses':["list of accesses"]})

    @expose("/accounts", methods=['GET'])
    def accounts(self):
        return jsonify({'res':'OK','accounts':["list of accounts"]})

该为之后的路径是:

http://{domain}/apiv1/{resource}/{params}
CURD:
- Create by HTTP POST
- Update by HTTP PUT
- Read by HTTP GET
- Delete by HTTP DEL

至少JSON输出是有了。接下来是用户认证,看FAB的用户系统如何参与到认证过程中了。考虑集成REST-auth组件。

相关文章

网友评论

    本文标题:Flask AppBuilder RESTful API 重建

    本文链接:https://www.haomeiwen.com/subject/dmannxtx.html