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/)
[![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
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
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 |