Last active
May 13, 2021 17:16
Revisions
-
w0rm revised this gist
Jul 20, 2013 . 2 changed files with 20 additions and 17 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,25 +1,28 @@ import web import json from restful_controller import RESTfulController urls = ( r'/resources(?:/(?P<resource_id>[0-9]+))?', 'ResourceController', ) class ResourceController(RESTfulController): def list(self): return "list resources", format def get(self, resource_id): return "retrieved resource", resource_id def create(self): resource = json.loads(web.data()) return "created resource", resource def update(self, resource_id): resource = json.loads(web.data()) return "updated resource", resource_id, resource def delete(self, resource_id): return "deleted resource", resource_id This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -12,25 +12,25 @@ def __getattr__(self, name): else: raise AttributeError def GET(self, resource_id=None): if resource_id is None: return self.list() else: return self.get(resource_id) def POST(self, resource_id=None): if resource_id is None: return self.create() else: raise web.badrequest() def PUT(self, resource_id=None): if resource_id is None: return self.update_collection() else: return self.update(resource_id) def DELETE(self, resource_id=None): if resource_id is None: return self.delete_collection() else: -
w0rm revised this gist
Jul 20, 2013 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -32,6 +32,6 @@ def PUT(self, resource_id=None, format=None): def DELETE(self, resource_id=None, format=None): if resource_id is None: return self.delete_collection() else: return self.delete(resource_id) -
w0rm renamed this gist
Oct 17, 2012 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
w0rm created this gist
Oct 17, 2012 .There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,30 @@ import web from restful_controller import RESTfulController urls = ( r'/resources(?:/(?P<resource_id>[0-9]+))?(?:\.(?P<format>[a-z]+))?', 'ResourceController', ) class ResourceController(RESTfulController): def list(self, format): return "list resources", format def get(self, resource_id, format): return "retrieved resource", resource_id, format def create(self, format): return "created resource", format def update(self, resource_id, format): return "replaced resource", resource_id, format def delete(self, resource_id): return "deleted resource", resource_id app = web.application(urls, globals()) if __name__ == "__main__": app.run() This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,37 @@ import web class RESTfulController: methods = ("list", "get", "create", "update", "delete", "update_collection", "delete_collection") def __getattr__(self, name): if name in self.methods and "headers" in web.ctx: raise web.badrequest() else: raise AttributeError def GET(self, resource_id=None, format=None): if resource_id is None: return self.list(format) else: return self.get(resource_id, format) def POST(self, resource_id=None, format=None): if resource_id is None: return self.create(format) else: raise web.badrequest() def PUT(self, resource_id=None, format=None): if resource_id is None: return self.update_collection(format) else: return self.update(resource_id, format) def DELETE(self, resource_id=None, format=None): if resource_id is None: return self.delete_collection(resource_id) else: return self.delete()