swagger_tools.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:gee-bridge 作者: francbartoli 项目源码 文件源码
def additional_schema(schema):
    """
    rest framework does not provide a way to override the schema on
    a per endpoint basis.  this is a cheap way to get the fields to
    appear on the swagger web interface through the filter_backends

    Args:
        schema (TYPE): Description
    """
    class SwaggerFilterBackend(object):
        """Summary
        """
        def get_schema_fields(self, view):
            """Summary

            Args:
                view (TYPE): Description

            Returns:
                TYPE: Description
            """
            keys = ('name', 'required', 'location', 'type', 'description')
            return [
                coreapi.Field(**{
                    key: val for key, val in field.items() if key in keys})
                for field in schema.values()
            ]

        def filter_queryset(self, request, queryset, view):
            """Summary

            Args:
                request (TYPE): Description
                queryset (TYPE): Description
                view (TYPE): Description

            Returns:
                TYPE: Description
            """
            # do nothing
            return queryset

    def wrapper(cls):
        """Summary

        Returns:
            TYPE: Description
        """
        cls.filter_backends = (BaseFilterBackend, )
        cls.filter_backends = list(cls.filter_backends) + [SwaggerFilterBackend]
        return cls

    return wrapper
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号