Exemplo n.º 1
0
    def get(self, request, *args, **kwargs):
        path = request.path
        path = path[:request.path.find('/api-docs')]
        apis = self.get_apis(path)
        generator = DocumentationGenerator(for_user=request.user)

        info = copy.deepcopy(rfs.SWAGGER_SETTINGS.get('info', {
            'contact': {},
            'description': '',
            'license': {'name': ''},
            'termsOfService': '',
            'title': '',
            'version': '',
        }))

        if 'version' not in info or info['version'] == '':
            matches = version_re.search(path)
            if matches is not None:
                info['version'] = matches.groups()[0]

        return Response({
            'swagger': '2.0',
            'basePath': path,
            'paths': generator.generate(apis),
            'definitions': generator.get_models(apis),
            'info': info,
            'tags': rfs.SWAGGER_SETTINGS.get('tags', [])
        })
Exemplo n.º 2
0
    def get(self, request, path):
        apis = self.get_api_for_resource(path)
        generator = DocumentationGenerator()

        return Response({
            'apis': generator.generate(apis),
            'models': generator.get_models(apis),
            'basePath': self.api_full_uri,
        })
Exemplo n.º 3
0
    def get(self, request, path):
        apis = self.get_api_for_resource(path)
        generator = DocumentationGenerator()

        return Response({
            'apis': generator.generate(apis),
            'models': generator.get_models(apis),
            'basePath': self.api_full_uri.rstrip('/'),
        })
Exemplo n.º 4
0
 def get(self, request, path, *args, **kwargs):
     apis = self.get_apis_for_resource(path)
     generator = DocumentationGenerator(for_user=request.user)
     return Response({
         'apiVersion': rfs.SWAGGER_SETTINGS.get('api_version', ''),
         'swaggerVersion': '1.2',
         'basePath': self.api_full_uri.rstrip('/'),
         'resourcePath': '/' + path,
         'apis': generator.generate(apis),
         'models': generator.get_models(apis),
     })
Exemplo n.º 5
0
    def test_get_models(self):
        class SerializedAPI(ListCreateAPIView):
            serializer_class = CommentSerializer

        urlparser = UrlParser()
        url_patterns = patterns('', url(r'my-api/', SerializedAPI.as_view()))
        apis = urlparser.get_apis(url_patterns)

        docgen = DocumentationGenerator()
        models = docgen.get_models(apis)

        self.assertIn('CommentSerializer', models)
Exemplo n.º 6
0
    def get(self, request, path):
        apis = self.get_api_for_resource(path)
        generator = DocumentationGenerator()

        return Response({
            'apiVersion': SWAGGER_SETTINGS.get('api_version', ''),
            'swaggerVersion': '1.2',
            "resourcePath": "/{}".format(path),
            'apis': generator.generate(apis),
            'models': generator.get_models(apis),
            'basePath': self.api_full_uri.rstrip('/'),
        })
Exemplo n.º 7
0
    def test_get_models(self):
        class SerializedAPI(ListCreateAPIView):
            serializer_class = CommentSerializer

        urlparser = UrlParser()
        url_patterns = patterns('', url(r'my-api/', SerializedAPI.as_view()))
        apis = urlparser.get_apis(url_patterns)

        docgen = DocumentationGenerator()
        models = docgen.get_models(apis)

        self.assertIn('CommentSerializer', models)
Exemplo n.º 8
0
    def get(self, request, path):
        apis = self.get_api_for_resource(path)
        generator = DocumentationGenerator()

        return Response({
            'apiVersion': SWAGGER_SETTINGS.get('api_version', ''),
            'swaggerVersion': '1.2',
            'basePath': get_full_base_path(request),
            'resourcePath': path,
            'apis': generator.generate(apis),
            'models': generator.get_models(apis),
        })
Exemplo n.º 9
0
    def get(self, request, path):
        apis = self.get_api_for_resource(path)
        generator = DocumentationGenerator()

        return Response({
            'apiVersion': SWAGGER_SETTINGS.get('api_version', ''),
            'swaggerVersion': '1.2',
            "resourcePath": "/{}".format(path),
            'apis': generator.generate(apis),
            'models': generator.get_models(apis),
            'basePath': self.api_full_uri.rstrip('/'),
        })
Exemplo n.º 10
0
    def get(self, request, path):
        apis = self.get_api_for_resource(path)
        generator = DocumentationGenerator()

        return Response({
            'apiVersion': rfs.SWAGGER_SETTINGS.get('api_version', ''),
            'swaggerVersion': '1.2',
            'basePath': self.api_full_uri.rstrip('/'),
            'resourcePath': '/' + path,
            'apiCustomHeaders': rfs.SWAGGER_SETTINGS.get('custom_headers', {}),
            'apis': generator.generate(apis),
            'models': generator.get_models(apis),
        })
Exemplo n.º 11
0
 def get(self, request, path, *args, **kwargs):
     apis = self.get_apis_for_resource(path)
     generator = DocumentationGenerator(for_user=request.user)
     return Response(
         {
             "apiVersion": rfs.SWAGGER_SETTINGS.get("api_version", ""),
             "swaggerVersion": "1.2",
             "basePath": self.api_full_uri.rstrip("/"),
             "resourcePath": "/" + path,
             "apis": generator.generate(apis),
             "models": generator.get_models(apis),
         }
     )
Exemplo n.º 12
0
    def get_api_declaration(self, path, urlconf):
        api_full_uri = SWAGGER_SETTINGS.get('api_full_uri')

        apis = self.get_api_for_resource(path, urlconf=urlconf)
        generator = DocumentationGenerator()

        return {
            'apiVersion': SWAGGER_SETTINGS.get('api_version', ''),
            'swaggerVersion': '1.2',
            'basePath': api_full_uri.rstrip('/'),
            'resourcePath': '/' + path,
            'apis': generator.generate(apis),
            'models': generator.get_models(apis),
        }
    def get_api_declaration(self, path):
        api_full_uri = SWAGGER_SETTINGS.get('api_full_uri')

        apis = self.get_api_for_resource(path)
        generator = DocumentationGenerator()

        return {
            'apiVersion': SWAGGER_SETTINGS.get('api_version', ''),
            'swaggerVersion': '1.2',
            'basePath': api_full_uri.rstrip('/'),
            'resourcePath': '/' + path,
            'apis': generator.generate(apis),
            'models': generator.get_models(apis),
        }
Exemplo n.º 14
0
    def get(self, request, path):
        apis = self.get_api_for_resource(path)

        apis = [api for api in apis
                if self.handle_resource_access(request, api['pattern'])]

        generator = DocumentationGenerator()

        return Response({
            'apiVersion': rfs.SWAGGER_SETTINGS.get('api_version', ''),
            'swaggerVersion': '1.2',
            'basePath': self.api_full_uri.rstrip('/'),
            'resourcePath': '/' + path,
            'apis': generator.generate(apis),
            'models': generator.get_models(apis),
        })