Hi, You might want to have a look at django-piston.
http://bitbucket.org/jespern/django-piston/wiki/Home Its a nice project to give rest full interface to your models. And for some specific logic also you can tweak the handlers to get desired results. Regards, //Vikalp On Tue, Sep 21, 2010 at 11:09 AM, Brendon <brendon.j.co...@gmail.com> wrote: > Hi all, > > I want to use DJango to implement an XML based RESTful API and a > website together using DJango. I am wondering if anyone here is aware > of any tutorials on ways of achieving this in DJango without > duplicating too much code? > > > Basically what I want to achieve is to use the same core logic for > both the website and the API and just have different presentation > layers for the two systems. I have not seen any tutorials or the like > on doing this sort of thing and was wondering if people here have > suggestions on best approaches or tutorials that might show good ways > to structure this. > > The idea is that all interaction using the API uses XML. The POST data > sent to the server and responses from the server are all using an XML > schema that we have designed for our application. All interaction with > the website is the same but uses normal web forms etc for the > interface of the presentation layer. > > Example API: > * GET : https://mywebsite/api/rooms/ : List available rooms, returns > XML with a list of Room ID's > * POST : https://mywebsite/api/room/ : Create a new room, raw POST > data is XML with the parameters required to create a room, on success > returns a Room ID > * GET : https://mywebsite/api/room/<room-id>/ : Retrieves details > about an existing room > * POST : https://mywebsite/api/room/<room-id>/ : Modifies details for > an existing room > * DELETE : https://mywebsite/api/room/<room-id>/ : Delete a room > > Now, on the website side of things I want to do exactly the same but > as part of a a nice HTML site (with menus for navigation, nice graphs > to display relevant data etc). > > Example Web: > * GET : https://mywebsite/web/rooms/ : Displays a page with a list > of links to available Rooms. > * GET : https://mywebsite/web/room/ : Displays a page with a form > requesting input of all necessary data to create a new room. > * POST : https://mywebsite/web/room/ : Create a new room. POST data > comes from form displayed previously (on error redisplays form). On > success redirects the user to the details page for that room. > * GET : https://mywebsite/web/room/<room-id>/ : Displays details > about an existing room and provides it in a form that can be used to > change the data with a POST > * POST : https://mywebsite/web/room/<room-id>/ : Modifies details for > an existing room > * DELETE : https://mywebsite/web/room/<room-id>/ : Delete a room > > > Thanks, > Brendon. > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-us...@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.