Flask AppBuilder RESTful API 重建

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 重建)