当前位置:首页 > 编程笔记 > 正文
已解决

【BI报表】Superset二开相关接口文档

来自网友在路上 159859提问 提问时间:2023-10-02 03:05:01阅读次数: 59

最佳答案 问答题库598位专家为你答疑解惑

记录一下Superset二开相关接口信息,方便后面查询

图表配置保存接口

接口地址

/superset/explore/?form_data=%7B%22slice_id%22%3A1%7D&slice_id=1&action=overwrite&slice_name=demo&save_to_dashboard_id=1

源码文件地址

根目录\superset\views\core.py

源码及部分截图

 @has_access@event_logger.log_this@expose("/explore/<datasource_type>/<int:datasource_id>/", methods=["GET", "POST"])@expose("/explore/", methods=["GET", "POST"])@expose("/explore/p/<key>/", methods=["GET"])# pylint: disable=too-many-locals,too-many-branches,too-many-statementsdef explore(self,datasource_type: Optional[str] = None,datasource_id: Optional[int] = None,key: Optional[str] = None,) -> FlaskResponse:initial_form_data = {}form_data_key = request.args.get("form_data_key")

保存与更新

if action == "saveas" and slice_add_perm:ChartDAO.save(slc)msg = _("Chart [{}] has been saved").format(slc.slice_name)flash(msg, "success")elif action == "overwrite" and slice_overwrite_perm:ChartDAO.overwrite(slc)msg = _("Chart [{}] has been overwritten").format(slc.slice_name)flash(msg, "success")

添加数据集

接口地址

/api/v1/dataset/

{database: 1, schema: "datacollect", table_name: "cgmx_out"}
database: 1
schema: "datacollect"
table_name: "cgmx_out"}

源码文件地址

根目录\superset\views\core.py

源码及部分截图

数据DAO

源码文件地址

\superset\dao\base.py

源码及部分截图

create
@classmethoddef create(cls, properties: Dict[str, Any], commit: bool = True) -> Model:"""Generic for creating models:raises: DAOCreateFailedError"""if cls.model_cls is None:raise DAOConfigError()model = cls.model_cls()  # pylint: disable=not-callablefor key, value in properties.items():setattr(model, key, value)try:db.session.add(model)if commit:db.session.commit()except SQLAlchemyError as ex:  # pragma: no coverdb.session.rollback()raise DAOCreateFailedError(exception=ex) from exreturn model

save
    @classmethoddef save(cls, instance_model: Model, commit: bool = True) -> Model:"""Generic for saving models:raises: DAOCreateFailedError"""if cls.model_cls is None:raise DAOConfigError()if not isinstance(instance_model, cls.model_cls):raise DAOCreateFailedError("the instance model is not a type of the model class")try:db.session.add(instance_model)if commit:db.session.commit()except SQLAlchemyError as ex:  # pragma: no coverdb.session.rollback()raise DAOCreateFailedError(exception=ex) from exreturn instance_model

update
 @classmethoddef update(cls, model: Model, properties: Dict[str, Any], commit: bool = True) -> Model:"""Generic update a model:raises: DAOCreateFailedError"""for key, value in properties.items():setattr(model, key, value)try:db.session.merge(model)if commit:db.session.commit()except SQLAlchemyError as ex:  # pragma: no coverdb.session.rollback()raise DAOUpdateFailedError(exception=ex) from exreturn model
delete
@classmethoddef delete(cls, model: Model, commit: bool = True) -> Model:"""Generic delete a model:raises: DAODeleteFailedError"""try:db.session.delete(model)if commit:db.session.commit()except SQLAlchemyError as ex:  # pragma: no coverdb.session.rollback()raise DAODeleteFailedError(exception=ex) from exreturn model

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"【BI报表】Superset二开相关接口文档":http://eshow365.cn/6-15657-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!