Skip to content
Snippets Groups Projects

Draft:Generic api v1

2 files
+ 27
8
Compare changes
  • Side-by-side
  • Inline

Files

+ 21
1
@@ -6,10 +6,15 @@ from apispec import APISpec
@@ -6,10 +6,15 @@ from apispec import APISpec
from flask_restful import Resource
from flask_restful import Resource
from flask_restful_swagger import swagger
from flask_restful_swagger import swagger
from flask_apispec.views import MethodResource
from flask_apispec.views import MethodResource
 
from flask_apispec import marshal_with, doc, use_kwargs
class ResourceGroup(MethodResource, Resource):
class SimpleResponse(Schema):
 
message = fields.Str(default='Success')
 
 
# TODO add notion of model
 
class ResourceGroup(MethodResource, Resource):
def get(self):
def get(self):
# TODO
# TODO
return {'method': 'get', 'mode': 'group'}
return {'method': 'get', 'mode': 'group'}
@@ -18,6 +23,13 @@ class ResourceGroup(MethodResource, Resource):
@@ -18,6 +23,13 @@ class ResourceGroup(MethodResource, Resource):
# TODO
# TODO
return {'method': 'post', 'mode': 'group'}
return {'method': 'post', 'mode': 'group'}
 
def genDoc(descr, tags):
 
doc(description=f'Get all {descr}', tags=tags)(ResourceGroup.get)
 
doc(description=f'Create a {descr}', tags=tags)(ResourceGroup.post)
 
# TODO response on JSON object given in param
 
marshal_with(SimpleResponse)(ResourceGroup.post)
 
# TODO marshal collection get response using given object
 
class ResourceItem(MethodResource, Resource):
class ResourceItem(MethodResource, Resource):
def get(self, id):
def get(self, id):
@@ -39,3 +51,11 @@ class ResourceItem(MethodResource, Resource):
@@ -39,3 +51,11 @@ class ResourceItem(MethodResource, Resource):
def delete(self, id):
def delete(self, id):
# TODO
# TODO
return {'method': 'delete', 'id': id, 'mode': 'item'}
return {'method': 'delete', 'id': id, 'mode': 'item'}
 
 
def genDoc(descr, tags):
 
doc(description=f'Get {descr} by id', tags=tags)(ResourceItem.get)
 
doc(description=f'Create or update a {descr} by id', tags=tags)(ResourceItem.post)
 
doc(description=f'Updates a {descr} by id', tags=tags)(ResourceItem.put)
 
doc(description=f'Updates partially a {descr} by id', tags=tags)(ResourceItem.patch)
 
doc(description=f'deletes a {descr} by id', tags=tags)(ResourceItem.delete)
 
# TODO marshal
Loading