Package: django-hyperadmin
Introductiondjango-hyperadmin is a HATEOAS API framework for building resources in Django. Resources are anything that can be manipulated with forms and configuration of a Resource is similar to that of an Admin Model. While Resources offer a REST CRUD layer out of the box they are meant to power workflows that go beyond CRUD. Additionally Resources aim to be reusable throughout the web application and not to be limitted to a single API endpoint.This is BETADocumentation:http://django-hyperadmin.readthedocs.org/FeaturesModelResource works like AdminModelData store agnosticMedia type agnosticIndex classes define search and filter capabilities through formsAutoloads basic functionality from admin siteInline supportClients packaged seperatelyThrottlingAPI key authenticationWizard workflowsSupported Media Formats:application/text-html, text/html - provides HTML responsesapplication/json - plain json serialization, uses datatapstext/javascript - for jsonpapplication/vnd.Collection+JSONapplication/vnd.Collection.next+JSONapplication/vnd.Collection.hyperadmin+JSON - for the emberjs clientTODO: xml, yaml, ???Headers control media type; “Accepts” and “Content-Type” control response and request formatRequirementsPython 2.6 or laterDjango 1.3 or laterdjango-datatapHelp & FeedbackWe have a mailing list for general discussion and help:http://groups.google.com/group/django-hyperadmin/InstallationInstall hyperadmin into your python environment:pip install django-hyperadminor:pip install -e git+git://github.com/webcube/django-hyperadmin.git#egg=django-hyperadminPut ‘hyperadmin’ into yourINSTALLED_APPSsection of your settings file.Add to root url patterns:url(r'^hyperapi/', include('hyperadmin.urls')),ConfigurationRegistering modelsRegistering a model with hyperadmin:import hyperadmin
from hpyeradmin.resources.models import ModelResource, InlineModelResource
from myapp.models import MyModel, ChildModel

class ChildModelResource(InlineModelResource):
    model = ChildModel

class MyModelResource(ModelResource):
    inlines = [ChildModelResource]
    list_display = ['name', 'number']
    list_filter = ['timestamp', 'category']

hyperadmin.site.register(MyModel, MyModelResource)API Endpoints“/” lists rows; POST to create“/add/” POST to add“/<id>/” displays a specific row; PUT/POST to update, DELETE to delete“/<id>/delete/” POST to deleteInline API Endpoints“/<parent_id>/(relname)/” lists rows; POST to create“/<parent_id>/(relname)/add/” POST to add“/<parent_id>/(relname)/<id>/” displays a specific row; PUT/POST to update, DELETE to delete“/<parent_id>/(relname)/<id>/delete/” POST to deleteAutoloading from Django AdminThe following registers the models from admin site (this is already done if you import fromhyperadmin.urls):from hyperadmin.resources.models.autload import DjangoCTModelAdminLoader
from django.contrib.admin import site as admin_site
from hyperadmin import site as root_endpoint

loader = DjangoCTModelAdminLoader(root_endpoint, admin_site)
loader.register_resources()ClientsVisiting the api endpoint in a browser will let you browse the various hyberobjects made available through the resource. Clients may be installed on a different url.Django Template Clienthttps://github.com/webcube/django-hyperadmin-clientUses django templates to render an admin interface. Responsive design out of the box.Ember REST Clienthttps://github.com/zbyte64/django-hyperadmin-emberclientUses REST calls and emberjs to render an admin interface.Backbone Bindingshttps://github.com/zbyte64/django-hyperadmin-backboneclientProvides basic bindings to the Backbone API.Dockit CMShttps://github.com/webcube/django-dockitcmsA dynamic API builder with a public HTML (template driven) client.Reading up on Hypermedia APIshttp://www.amundsen.com/hypermedia/hfactor/http://code.ge/media-types/collection-next-json/