Skip to main content

XML backed models queried from external REST apis

Project description

[![Build Status](https://travis-ci.org/alephnullplex/xml_models2.svg?branch=master)](https://travis-ci.org/alephnullplex/xml_models2)
[![Coverage Status](https://coveralls.io/repos/alephnullplex/xml_models2/badge.svg?branch=master)](https://coveralls.io/r/alephnullplex/xml_models2?branch=master)

[Read The Docs](http://xml-models2.readthedocs.org/en/latest/)

# XmlModels2

XmlModels allows you to define Models similar in nature to Django models that are backed by XML endpoints rather than a
database. Using a familiar declarative definition, the fields map to values in the XML document by means of XPath
expressions. With support for querying external REST APIs using a django-esque approach, we have strived to make
writing and using xml backed models as close to django database models as we can, within the limitations of the
available API calls.

# Installation

The simplest approach is to to use `pip install xml_models2`

# A simple example

Just to get started, this is an example of taking an XML representation of an Address that might be returned from a
GET request to an external REST api.

<Address id="2">
<number>22</number>
<street>Acacia Avenue</street>
<city>Maiden</city>
<country>England</country>
<postcode>IM6 66B</postcode>
</Address>

class Address(xml_models.Model):
id=xml_models.IntField(xpath="/Address/@id")
number = xml_models.IntField(xpath="/Address/number")
street = xml_models.CharField(xpath="/Address/street")
city = xml_models.CharField(xpath="/Address/city")
country = xml_models.CharField(xpath="/Address/country")
postcode = xml_models.CharField(xpath="/Address/postcode")

finders = {(id,): 'http://adresses/%s'}

This example would be used as follows:-

>>> address = Address.objects.get(id=2)
>>> print "address is %s, %s" % (address.number, address.street)
"22, Acacia Avenue"

# Heritage

This project is a fork of [Django REST Models](http://djangorestmodel.sourceforge.net/)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xml_models2-0.11.1.zip (13.5 kB view details)

Uploaded Source

Built Distribution

xml_models2-0.11.1-py2.py3-none-any.whl (13.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file xml_models2-0.11.1.zip.

File metadata

  • Download URL: xml_models2-0.11.1.zip
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for xml_models2-0.11.1.zip
Algorithm Hash digest
SHA256 45a1704fef9c03962da40b2c4a535eb974fc108c2977f856fcbbd4dae4a8cecd
MD5 a6659925ed98d1be607bb95e2d94b6c2
BLAKE2b-256 5679202fe19e3fe8b3c43fc77b74c5f1e9a7106e5060242996ba46ef2093ef89

See more details on using hashes here.

File details

Details for the file xml_models2-0.11.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for xml_models2-0.11.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a801a9f0fb2598745b0039d3b88eb4830214d75275906f013055dde81a22e214
MD5 553af082e3015e124b49174a8d743c47
BLAKE2b-256 b169060b5b9c61538173c356e02d679bce0958e373aec4ab3349a50b5badd2a1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page