{ "info": { "author": "SENAITE Foundation", "author_email": "hello@senaite.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Zope2", "Programming Language :: Python" ], "description": "SENAITE JSON API\n================\n\nThe JSON API provides a RESTful JSON interface to SENAITE CORE.\n\n\nSENAITE JSON API v1\n===================\n\nRunning this test from the buildout directory::\n\n bin/test test_doctests -t JSONAPIv1\n\n\nTest Setup\n----------\n\nNeeded Imports::\n\n >>> import transaction\n\n >>> from plone.app.testing import TEST_USER_ID\n >>> from plone.app.testing import TEST_USER_PASSWORD\n\n >>> from senaite import api\n\nFunctional Helpers::\n\n >>> def start_server():\n ... from Testing.ZopeTestCase.utils import startZServer\n ... ip, port = startZServer()\n ... return \"http://{}:{}/{}\".format(ip, port, portal.id)\n\n >>> def login(user=TEST_USER_ID, password=TEST_USER_PASSWORD):\n ... browser.open(portal_url + \"/login_form\")\n ... browser.getControl(name='__ac_name').value = user\n ... browser.getControl(name='__ac_password').value = password\n ... browser.getControl(name='submit').click()\n ... assert(\"__ac_password\" not in browser.contents)\n\n >>> def logout():\n ... browser.open(portal_url + \"/logout\")\n ... assert(\"You are now logged out\" in browser.contents)\n\nVariables::\n\n >>> portal = self.portal\n >>> portal_url = portal.absolute_url()\n >>> bika_setup = portal.bika_setup\n >>> bika_setup_url = portal_url + \"/bika_setup\"\n >>> browser = self.getBrowser()\n\nJSON API::\n\n >>> api_base_url = portal_url + \"/@@API/senaite/v1\"\n\n\nVersion\n-------\n\nEnsure we are logged out::\n\n >>> logout()\n\nThe version route should be visible to unauthenticated users::\n\n >>> browser.open(api_base_url + \"/version\")\n >>> browser.contents\n '{\"url\": \"http://nohost/plone/@@API/senaite/v1/version\", \"date\": \"...\", \"version\": ..., \"_runtime\": ...}'\n\n\nChangelog\n=========\n1.2.0 (2018-01-03)\n------------------\n\n**Added**\n\n- Added `parent_path` to response data\n- Allow custom methods as attributes in adapter\n\n**Removed**\n\n**Changed**\n\n- Integration to SENAITE CORE\n- License changed to GPLv2\n\n**Fixed**\n\n- Fixed Tests\n\n**Security**\n\n\n1.1.0 (2017-11-04)\n------------------\n\n- Merged PR https://github.com/collective/plone.jsonapi.routes/pull/90\n- Get object by UID catalog\n\n\n1.0.1 (2017-09-30)\n------------------\n\n- Fixed broken release (missing MANIFEST.in)\n\n\n1.0.0 (2017-09-30)\n------------------\n\n- First release\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/senaite/senaite.jsonapi", "keywords": "", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "senaite.jsonapi", "package_url": "https://pypi.org/project/senaite.jsonapi/", "platform": "", "project_url": "https://pypi.org/project/senaite.jsonapi/", "project_urls": { "Homepage": "https://github.com/senaite/senaite.jsonapi" }, "release_url": "https://pypi.org/project/senaite.jsonapi/1.2.0/", "requires_dist": null, "requires_python": "", "summary": "SENAITE JSON API", "version": "1.2.0" }, "last_serial": 3459607, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "0e25a62aead22f98b2694b33f5df9298", "sha256": "9b59f4573db67b477475ba31b49f80814d29877205d717a3993146a8799ceb98" }, "downloads": -1, "filename": "senaite.jsonapi-1.0.1.zip", "has_sig": false, "md5_digest": "0e25a62aead22f98b2694b33f5df9298", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56916, "upload_time": "2017-09-30T17:54:10", "url": "https://files.pythonhosted.org/packages/37/16/a1255d255f51250b986a2d4bc22dfac399611dd221bce92835540862a98c/senaite.jsonapi-1.0.1.zip" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "9f4dd9c035317a6a6996b7ffa2cda1fc", "sha256": "a00fe9a69099f1083b4370676bbd45bf27417a8f360a5186345707b84e003ceb" }, "downloads": -1, "filename": "senaite.jsonapi-1.1.0.zip", "has_sig": false, "md5_digest": "9f4dd9c035317a6a6996b7ffa2cda1fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55508, "upload_time": "2017-11-04T18:29:59", "url": "https://files.pythonhosted.org/packages/eb/7e/2ad860513a918f74802528e01f0ca84e14ba54fb62244277733a95a90195/senaite.jsonapi-1.1.0.zip" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "72597d25d9c207388d8a14c8ac77b78e", "sha256": "6251f347af1a9d1d2186989e2a6b429901beed7f966721eaef3434ff12b0a2d2" }, "downloads": -1, "filename": "senaite.jsonapi-1.2.0.zip", "has_sig": false, "md5_digest": "72597d25d9c207388d8a14c8ac77b78e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54262, "upload_time": "2018-01-03T17:11:43", "url": "https://files.pythonhosted.org/packages/de/3c/288b901d86c429d228e0c51013fc6b7ea8eba9432e236375b6b723086613/senaite.jsonapi-1.2.0.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "72597d25d9c207388d8a14c8ac77b78e", "sha256": "6251f347af1a9d1d2186989e2a6b429901beed7f966721eaef3434ff12b0a2d2" }, "downloads": -1, "filename": "senaite.jsonapi-1.2.0.zip", "has_sig": false, "md5_digest": "72597d25d9c207388d8a14c8ac77b78e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54262, "upload_time": "2018-01-03T17:11:43", "url": "https://files.pythonhosted.org/packages/de/3c/288b901d86c429d228e0c51013fc6b7ea8eba9432e236375b6b723086613/senaite.jsonapi-1.2.0.zip" } ] }