XML backed models queried from external REST apis
Project description
[](https://travis-ci.org/alephnullplex/xml_models2)
[](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/)
[](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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45a1704fef9c03962da40b2c4a535eb974fc108c2977f856fcbbd4dae4a8cecd
|
|
| MD5 |
a6659925ed98d1be607bb95e2d94b6c2
|
|
| BLAKE2b-256 |
5679202fe19e3fe8b3c43fc77b74c5f1e9a7106e5060242996ba46ef2093ef89
|
File details
Details for the file xml_models2-0.11.1-py2.py3-none-any.whl.
File metadata
- Download URL: xml_models2-0.11.1-py2.py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a801a9f0fb2598745b0039d3b88eb4830214d75275906f013055dde81a22e214
|
|
| MD5 |
553af082e3015e124b49174a8d743c47
|
|
| BLAKE2b-256 |
b169060b5b9c61538173c356e02d679bce0958e373aec4ab3349a50b5badd2a1
|