{ "info": { "author": "Liricus SRL", "author_email": "info@liricus.com.ar", "bugtrack_url": null, "classifiers": [], "description": "django-simple-webservice\n========================\n\nEste paquete genera una muy simple interfaz (parecida a json-rpc)\nde comunicaci\u00f3n con su aplicaci\u00f3n.\n\nSETUP\n-----\n\n1. Install ``django-summernote`` to your python environment.\n\n::\n\n pip install django-summernote\n\n2. Add ``django_summernote`` to ``INSTALLED_APP`` in ``settings.py``.\n\n.. code-block:: python\n\n INSTALLED_APPS += ('simple_webservice', )\n\n3. Add ``django_summernote.urls`` to ``urls.py``.\n\n.. code-block:: python\n\n urlpatterns = patterns('',\n ...\n url(r'^ws/', include('simple_webservice.urls', namespace='ws')),\n ...\n )\n\n4. Add ``webservice_autodiscover()`` an the top os ``urls.py``\n\n.. code-block:: python\n\n from simple_webservice import webservice_autodiscover\n webservice_autodiscover()\n\n urlpatterns = patterns('',\n ...\n )\n\n\nUSAGE\n-----\n\n1. create a file ``webservices.py`` inside the app with the webservices\n\n2. Inside the file copy and paste ne next line\n\n.. code-block:: python\n\n import simple_webservice as ws\n\n\n3. Puedes agregar las operaciones comunes de sobre los modelos que quieres\n exponer como tus webservices, y puedes restringir el acceso a esos servicios\n por ejemplo, si deseamos darle permiso de lectura al modelo ``User`` del\n sistema de autenticacion de django para que cualquier persona pueda\n consultar a dichos registros pero solo usuarios logueados puedan\n modificarlos podemos escibir algo como:\n\n .. code-block:: python\n\n from django.contrib import auth\n\n import simple_webservice as ws\n\n ws.register_model(auth.models.User, select=True)\n ws.register_model(auth.models.User, select=True, login=True)\n\n\n Pueden darse tambien varios permisos para operaciones en una misma linea\n pero manteniendo los modificadores de acceso iguales. Por ejemplo si\n quisieramos darle todos los permisos para todas las operaciones pero\n sin estarlo logeado al modelo Grupos, podriamos hacer\n\n .. code-block:: python\n\n ws.register_model(auth.models.Group, select=True, insert=True,\n update=True, delete=True, login=True)\n\n4. Otra alternativa es crear webservices mas espec\u00edficos que representen mas\n la logica de su aplicaci\u00f3n. Supongamos que tenemos el siguiente modelo\n en su aplicacion ``foo``\n\n .. code-block:: python\n\n class Faa(models.Model):\n\n some_date = models.DateTimeField()\n\n\n Y deseamos hacer un metodo que siempre devuelva los objetos que superen un\n cierto dia en ``some_date``. Podemos crear un webservice con la siguiente\n forma.\n\n .. code-block:: python\n\n from foo.models import Faa\n\n @ws.register_call(login=True)\n def example_webservice(filter_date, *kwargs):\n # the date need to como alwys in iso format\n filter_date = ws.parse_data(\n {\"some_date\": filter_date}, Faa\n )[\"some_date\"]\n\n query = Faa.objects.filter(some_date__gte=filter_date)\n return ws.query_to_dict(query)\n\n\nComo realizar las consultas\n---------------------------\n\nPara realizar las consultas usted dispone de una api uniforme que recive y\nemite el formato JSON.\n\nEstas llamadas siempre se encuentran diponible en la url de su aplicaci\u00f3n en\nel path ``ws/call/``. Por ejemplo si usted esta corriendo su servidor de\ndesarrollo en localhost y el pueto 8000 las llamadas se recibiran en\n\n::\n\n http://localhost:8000/ws/call/\n\n\nLa forma de TODA llamada se parece siempre tiene la siguiente estructura:\n\n.. code-block:: javascript\n\n {\n \"id\": ,\n \"name\": \"name_of_webservice_to_execute\",\n \"args\": { \"arguments of the call\" },\n \"session\": \"session id if you are logged in ot null\"\n }\n\nEl ``id`` solo sirve para identificar llamadas con respuestas\n\nLas respuestas siempre tienen la forma:\n\n .. code-block:: javascript\n\n {\n 'id': None,\n \"stacktrace\": \"\",\n \"error\": false,\n \"response\": {\"respuesta de la llamada\"},\n \"error_msg\": \"\"\n }\n\n\nLas llamadas principales son:\n\n - ``ping`` Retorna siempre *true* su objetivo es solo saber si el servicio\n funcion.\n\n **Llamada**\n\n .. code-block:: javascript\n\n {\n \"id\": null,\n \"name\": \"ping\",\n \"args\": {},\n \"session\": null\n }\n\n **Respuesta**\n\n .. code-block:: javascript\n\n {\n 'id': None,\n \"stacktrace\": \"\",\n \"error\": false,\n \"response\": {\"ping\": true},\n \"error_msg\": \"\"\n }\n\n\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/liricus/django-simple-webservice", "keywords": "webservices json simple django", "license": "LGPL", "maintainer": null, "maintainer_email": null, "name": "django-simple-webservice", "package_url": "https://pypi.org/project/django-simple-webservice/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-simple-webservice/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/liricus/django-simple-webservice" }, "release_url": "https://pypi.org/project/django-simple-webservice/0.1.1/", "requires_dist": null, "requires_python": null, "summary": "Django app for simple create json-rpc like webservices", "version": "0.1.1" }, "last_serial": 1138621, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "ffb964d193f90e8f8b622b2858ca744f", "sha256": "a4b806648aef12710430e88c47c6a9e1755eecfab81477c761656d6e1ae12f74" }, "downloads": -1, "filename": "django-simple-webservice-0.1.tar.gz", "has_sig": false, "md5_digest": "ffb964d193f90e8f8b622b2858ca744f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11438, "upload_time": "2014-06-26T18:16:12", "url": "https://files.pythonhosted.org/packages/83/30/619bebdaf861fac1e17bb6920154516131f362f312b9dd9ebb4d0cbfa849/django-simple-webservice-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b329c2ededffbca7d30760207885de40", "sha256": "9fc30a7146778bd2825eac949fc1000ffbff3646dbea390be9a5c022f3f2c807" }, "downloads": -1, "filename": "django-simple-webservice-0.1.1.tar.gz", "has_sig": false, "md5_digest": "b329c2ededffbca7d30760207885de40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11443, "upload_time": "2014-06-26T18:18:48", "url": "https://files.pythonhosted.org/packages/f0/e4/9bf0350a18497b012511baa33a142db4136d5c9705d357e174fd864d72e5/django-simple-webservice-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b329c2ededffbca7d30760207885de40", "sha256": "9fc30a7146778bd2825eac949fc1000ffbff3646dbea390be9a5c022f3f2c807" }, "downloads": -1, "filename": "django-simple-webservice-0.1.1.tar.gz", "has_sig": false, "md5_digest": "b329c2ededffbca7d30760207885de40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11443, "upload_time": "2014-06-26T18:18:48", "url": "https://files.pythonhosted.org/packages/f0/e4/9bf0350a18497b012511baa33a142db4136d5c9705d357e174fd864d72e5/django-simple-webservice-0.1.1.tar.gz" } ] }