{ "info": { "author": "Rinzler", "author_email": "feliphezion@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development" ], "description": "# Rinzler REST Framework\n\nDjango-based REST Micro-Framework\n\n# Install requires\n\n```PHP\npip install rinzler\n```\n\n# Usage\n```Python\n\n# urls.py\n\nimport os\nimport rinzler\n\nfrom rinzler.core.main_controller import MainController\nfrom your_controller import Controller\n\nBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))\n\napp = rinzler.boot(BASE_DIR)\nassembler = app['url_assembler']\n\nurlpatterns = [\n assembler.mount('hello', Controller),\n assembler.mount('', MainController),\n]\n\n```\n\n```Python\n# your_controller.py\nfrom collections import OrderedDict\n\nfrom django.http.request import HttpRequest\nfrom django.views.generic import TemplateView\n\nfrom rinzler.core.response import Response\n\n\nclass Controller(TemplateView):\n\n def connect(self, app):\n\n router = app['router']\n\n # map end-points to callbacks here\n router.get('/world/', self.hello_world)\n router.get('/{name}/', self.hello_user)\n\n return app\n\n # end-point callbacks here:\n @staticmethod\n def hello_world(request: HttpRequest, app: dict(), **params: dict):\n \"\"\"\n Default route callback\n :param request HttpRequest\n :param app Rinzler's object\n :param params dict url params, if present\n :rtype: Response\n \"\"\"\n try:\n response = OrderedDict()\n response[\"status\"] = True\n response[\"data\"] = \"Hello World!\"\n\n return Response(response, content_type=\"application/json\")\n except BaseException as e:\n response = OrderedDict()\n response[\"status\"] = False\n response[\"mensagem\"] = str(e)\n\n return Response(response, content_type=\"application/json\", status=500)\\\n\n @staticmethod\n def hello_user(request: HttpRequest, app: dict(), **params: dict):\n \"\"\"\n Default route callback\n :param request HttpRequest\n :param app Rinzler's object\n :param params dict url params, if present\n :rtype: Response\n \"\"\"\n try:\n user = params['name']\n response = OrderedDict()\n response[\"status\"] = True\n response[\"data\"] = \"Hello {0}!\".format(user)\n\n return Response(response, content_type=\"application/json\")\n except BaseException as e:\n response = OrderedDict()\n response[\"status\"] = False\n response[\"mensagem\"] = str(e)\n\n return Response(response, content_type=\"application/json\", status=500)\n\n```\n### Run django\n```shell\npython manage.py runserver\nAugust 02, 2017 - 18:48:00\nDjango version 1.10.4, using settings 'Demo.settings'\nStarting development server at http://127.0.0.1:8000/\nQuit the server with CONTROL-C.\n```\n\n### Sample requests\n\n```shell\ncurl http://localhost:8000/\n