Browse Source

add generated swagger_doc as temporary endpoint

Guénaël Muller 6 years ago
parent
commit
bf149e2b25
2 changed files with 18 additions and 14 deletions
  1. 0 13
      tracim/__init__.py
  2. 18 1
      tracim/views/default/default_controller.py

+ 0 - 13
tracim/__init__.py View File

@@ -50,17 +50,4 @@ def main(global_config, **settings):
50 50
     default_controllers.bind(configurator)
51 51
     session_api = SessionController()
52 52
     session_api.bind(configurator)
53
-    # TODO - G.M - 09-04-2018 - Enable swagger ui doc
54
-    # time.sleep(1)
55
-    # s = json.dumps(
56
-    #     hapic.generate_doc(
57
-    #         title='Tracim v2 API',
58
-    #         description='API of Tracim v2',
59
-    #
60
-    #     )
61
-    # )
62
-    # time.sleep(1)
63
-    # # print swagger doc
64
-    # print(s)
65
-    # time.sleep(1)
66 53
     return configurator.make_wsgi_app()

+ 18 - 1
tracim/views/default/default_controller.py View File

@@ -1,5 +1,6 @@
1 1
 # coding=utf-8
2 2
 from tracim import TracimRequest
3
+from tracim.extensions import hapic
3 4
 from tracim.views.controllers import Controller
4 5
 from pyramid.config import Configurator
5 6
 from pyramid.exceptions import NotFound
@@ -7,13 +8,29 @@ from pyramid.exceptions import NotFound
7 8
 
8 9
 class DefaultController(Controller):
9 10
 
10
-    def notfound_view(self, request:TracimRequest):
11
+    def notfound_view(self, request: TracimRequest):
11 12
         request.response.status = 404
12 13
         return {}
13 14
 
15
+    def swagger_doc(self, request: TracimRequest):
16
+        return hapic.generate_doc(
17
+                title='Tracim v2 API',
18
+                description='API of Tracim v2',
19
+        )
20
+
14 21
     def bind(self, configurator: Configurator):
15 22
         configurator.add_view(
16 23
             self.notfound_view,
17 24
             renderer='json',
18 25
             context=NotFound,
19 26
         )
27
+        configurator.add_route(
28
+            'swagger_doc',
29
+            '/swagger_doc',
30
+            request_method='GET',
31
+        )
32
+        configurator.add_view(
33
+            self.swagger_doc,
34
+            route_name='swagger_doc',
35
+            renderer='json',
36
+        )