writer.py 文件源码

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

项目:sphinx-swagger 作者: dave-shawley 项目源码 文件源码
def visit_field(self, node):
        """
        :param docutils.nodes.field node:
        """
        idx = node.first_child_matching_class(nodes.field_name)
        if idx is not None:
            name_node = node[idx]
            idx = node.first_child_matching_class(nodes.field_body)
            value_node = node[idx]
            name = name_node.astext()
            if name == 'Status Codes':
                visitor = StatusVisitor(self.document)
                value_node.walkabout(visitor)
                self.endpoint.add_response_codes(visitor.status_info)
            elif name == 'Request Headers':
                visitor = HeaderVisitor(self.document)
                value_node.walkabout(visitor)
                self.endpoint.add_request_headers(visitor.headers)
            elif name == 'Response Headers':
                visitor = HeaderVisitor(self.document)
                value_node.walkabout(visitor)
                self.endpoint.add_response_headers(visitor.headers)
            elif name == 'Parameters':
                visitor = ParameterVisitor(self.document,
                                           {'in': 'path', 'required': True})
                value_node.walkabout(visitor)
                self.endpoint.parameters.extend(visitor.parameters)
            elif name == 'Query Parameters':
                visitor = ParameterVisitor(self.document, {'in': 'query'})
                value_node.walkabout(visitor)
                self.endpoint.parameters.extend(visitor.parameters)
            elif name == 'Request JSON Object':
                visitor = ParameterVisitor(self.document)
                value_node.walkabout(visitor)
                self.endpoint.parameters.append({
                    'name': 'request-body', 'in': 'body', 'required': True,
                    'description': 'A serialized request body',
                    'schema': visitor.get_schema()})
            elif name == 'Request JSON Array of Objects':
                visitor = ParameterVisitor(self.document)
                value_node.walkabout(visitor)
                self.endpoint.parameters.append({
                    'name': 'request-body', 'in': 'body', 'required': True,
                    'schema': {'type': 'array', 'items': visitor.get_schema()}
                })
            elif name == 'Response JSON Object':
                visitor = ParameterVisitor(self.document)
                value_node.walkabout(visitor)
                self.endpoint.set_default_response_structure(visitor.parameters)
            elif name == 'Response JSON Array of Objects':
                visitor = ParameterVisitor(self.document)
                value_node.walkabout(visitor)
                self.endpoint.set_default_response_structure(
                    visitor.parameters, is_array=True)
            else:
                self.document.reporter.warning(
                    'unhandled field type: {}'.format(name), base_node=node)
            raise nodes.SkipChildren
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号