Fixed nested resources in api-python-client-doc
This commit is contained in:
@@ -168,6 +168,7 @@ def build(serviceName, version, http=None,
|
|||||||
methodName, self._developerKey, methodDesc, futureDesc)
|
methodName, self._developerKey, methodDesc, futureDesc)
|
||||||
|
|
||||||
setattr(method, '__doc__', 'A description of how to use this function')
|
setattr(method, '__doc__', 'A description of how to use this function')
|
||||||
|
setattr(method, '__is_resource__', True)
|
||||||
setattr(theclass, methodName, method)
|
setattr(theclass, methodName, method)
|
||||||
|
|
||||||
for methodName, methodDesc in resources.iteritems():
|
for methodName, methodDesc in resources.iteritems():
|
||||||
@@ -328,6 +329,7 @@ def createResource(http, baseUrl, model, resourceName, developerKey,
|
|||||||
methodName, self._developerKey, methodDesc, futureDesc)
|
methodName, self._developerKey, methodDesc, futureDesc)
|
||||||
|
|
||||||
setattr(method, '__doc__', 'A description of how to use this function')
|
setattr(method, '__doc__', 'A description of how to use this function')
|
||||||
|
setattr(method, '__is_resource__', True)
|
||||||
setattr(theclass, methodName, method)
|
setattr(theclass, methodName, method)
|
||||||
|
|
||||||
for methodName, methodDesc in resourceDesc['resources'].iteritems():
|
for methodName, methodDesc in resourceDesc['resources'].iteritems():
|
||||||
|
|||||||
@@ -90,7 +90,24 @@ class CollectionHandler(webapp.RequestHandler):
|
|||||||
|
|
||||||
def get(self, service_name, version, collection):
|
def get(self, service_name, version, collection):
|
||||||
service = build(service_name, version)
|
service = build(service_name, version)
|
||||||
page = "<p><a href='/'>Home</a></p><pre>%s</pre>" % pydoc.plain(render_doc(getattr(service, collection)()))
|
# descend the object path
|
||||||
|
path = collection.split("/")
|
||||||
|
if path:
|
||||||
|
for method in path[:-1]:
|
||||||
|
service = getattr(service, method)()
|
||||||
|
method = getattr(service, path[-1])
|
||||||
|
obj = method()
|
||||||
|
page = "<p><a href='/'>Home</a></p><pre>%s</pre>" % pydoc.plain(render_doc(obj))
|
||||||
|
|
||||||
|
if hasattr(method, '__is_resource__'):
|
||||||
|
collections = []
|
||||||
|
for name in dir(obj):
|
||||||
|
if not "_" in name and callable(getattr(obj, name)) and hasattr(getattr(obj, name), '__is_resource__'):
|
||||||
|
collections.append(name)
|
||||||
|
|
||||||
|
for name in collections:
|
||||||
|
page = re.sub('(%s) =' % name, r'<a href="/%s/%s/%s">\1</a> =' % (service_name, version, collection + "/" + name), page)
|
||||||
|
|
||||||
self.response.out.write(page)
|
self.response.out.write(page)
|
||||||
|
|
||||||
|
|
||||||
@@ -99,7 +116,7 @@ def main():
|
|||||||
[
|
[
|
||||||
(r'/', MainHandler),
|
(r'/', MainHandler),
|
||||||
(r'/(\w*)/(\w*)', ServiceHandler),
|
(r'/(\w*)/(\w*)', ServiceHandler),
|
||||||
(r'/(\w*)/(\w*)/(\w*)', CollectionHandler),
|
(r'/(\w*)/(\w*)/(.*)', CollectionHandler),
|
||||||
],
|
],
|
||||||
debug=True)
|
debug=True)
|
||||||
util.run_wsgi_app(application)
|
util.run_wsgi_app(application)
|
||||||
|
|||||||
Reference in New Issue
Block a user