def setUp(self): self.flask_app = Flask(__name__) self.url_prefix = '/testing/ripozo/api/v1.0' self.host = 'http://localhost' self.app = self.flask_app.test_client() self.dispatcher = FlaskDispatcher(self.flask_app, url_prefix=self.url_prefix) self.dispatcher.register_adapters(adapters.HalAdapter)
class TaskBoardResource(restmixins.CRUDL): manager = TaskBoardManager(session_handler) resource_name = 'taskboard' pks = ('id', ) _relationships = (ListRelationship('tasks', relation='TaskResource'), ) @apimethod(route='/addtask', methods=['POST']) def add_task(cls, request): body_args = request.body_args body_args['task_board_id'] = request.get('id') request.body_args = body_args return TaskResource.create(request) class TaskResource(restmixins.CRUD): manager = TaskManager(session_handler) resource_name = 'task' pks = ('id', ) _relationships = (Relationship('task_board', property_map=dict(task_board_id='id'), relation='TaskBoardResource'), ) dispatcher = FlaskDispatcher(app, url_prefix='/api') dispatcher.register_adapters(SirenAdapter, HalAdapter) dispatcher.register_resources(TaskBoardResource, TaskResource) if __name__ == '__main__': app.run(debug=True)
def hello_world(cls, request): return cls( properties=dict(content='Hello World!', name=request.get('name'))) class RelatedResource(ResourceBase): append_slash = True resource_name = 'related' pks = ('name', ) @translate(fields=[fields.StringField('name', minimum=3, required=True)], validate=True) @apimethod(methods=['GET']) def hello_name(cls, request): name = request.url_params.get('name') content = 'Your name is {}'.format(name) return cls(properties=dict(content=content, name=name)) dispatcher = FlaskDispatcher(app) dispatcher.register_adapters(adapters.SirenAdapter, adapters.HalAdapter) dispatcher.register_resources(HelloResource, RelatedResource) def main(): app.run(debug=True) if __name__ == '__main__': main()
def create_ripozo(app): return FlaskDispatcher(app, url_prefix="/api")
dict or None: Properties of the retrieved item or None if no such item found. """ resp = items_conn.stub.GetItem( items_pb2.GetItemRequest(id=lookup_keys['id'])) item = resp.item if item: return dict(id=item.id, name=item.name) def retrieve_list(self, filters, *args, **kwargs): raise NotImplementedError() def update(self, lookup_keys, updates, *args, **kwargs): raise NotImplementedError() class ItemResource(restmixins.Retrieve): """Standard ripozo resource that can be used by ripozo adapters. Handles requests and constructs resources to return as a request. """ manager = ItemManager() pks = 'id', resource_name = 'items' # register resources and valid response types _dispatcher = FlaskDispatcher(items) _dispatcher.register_adapters(JSONAPIAdapter) _dispatcher.register_resources(ItemResource)