{ "info": { "author": "vir-mir", "author_email": "virmir49@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# hipster_api\nwrapper django rest framework\n\n## \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\n\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f restapi \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435\n\n\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\n```python\nINSTALLED_APPS = (\n...\n'rest_framework',\n'hipster_api',\n)\nTEMPLATE_DIRS = (\n os.path.join(os.path.dirname(__file__), '..', 'templates').replace('\\\\', '/'),\n)\n```\n\n\n## \u041f\u0440\u0438\u043c\u0435\u0440 views\n```python\nfrom hipster_api import fields as hfields\nfrom hipster_api.views import HView\n\n\nclass QuestsView(HView):\n \"\"\"\n \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u043e\u0441\u0442\u0430\u043c\u0438\n \"\"\"\n\n class Fields(object):\n fields = hfields.FieldsListResponse(verbose_name=u'\u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e', methods=['get'])\n offset = hfields.IntegerLarger(default=0, larger=0, glt=True, methods=['get'])\n limit = hfields.IntegerLarger(default=20, larger=0, methods=['get'])\n active = hfields.IntegerList(default=u'0,1', methods=['get'])\n \n name = hfields.String(verbose_name=u'\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0430', default=u'', methods=['put'])\n description = hfields.String(verbose_name=u'\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0430', default=u'', methods=['put'])\n\n def get(self, request, format=None):\n \"\"\"\n \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u043e\u0432\n :public:\n \"\"\"\n fields = ['id'] + self.objects.fields\n posts = Post.objects.values(*fields).filter(active__in=self.objects.active)[self.objects.offset:self.objects.limit]\n \n return Response(quests)\n \n def put(self, request, format=None):\n \"\"\"\n \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0430\n :private \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0434\u043c\u0438\u043d\u0430:\n \"\"\"\n \n Post(name=self.objects.name, description=self.objects.description).save()\n return Response(status=202)\n \n```\n\n### \u0437\u0430\u043f\u0440\u043e\u0441\u044b\n```\nGET /api/v1/posts.json?fields=name\nGET /api/v1/posts.json?fields=name,description\n\nPUT /api/v1/posts.json\nname = '\u0442\u0435\u0441\u0442'\ndescription = '\u0442\u0435\u0441 \u0442\u0435\u0441\u0442'\n\n```\n\n## \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \n`python manage.py hipster_api_doc`\n\n### \u0432\u044b\u0432\u043e\u0434 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \n\n```html\n{% block container %}\n