changeset 96:1d6955cd4336

Improve discovery document caching
author Lewin Bormann <lbo@spheniscida.de>
date Sat, 24 Oct 2020 22:41:44 +0200
parents f6761dc9ca86
children 2edf033d4f3f
files generate/generate.py
diffstat 1 files changed, 8 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/generate/generate.py	Sat Oct 24 22:12:27 2020 +0200
+++ b/generate/generate.py	Sat Oct 24 22:41:44 2020 +0200
@@ -506,15 +506,14 @@
     return [it for it in doc['items'] if (not apis or it['id'] in apis)]
 
 
-def fetch_discovery_doc(api_doc=None, url=None):
+def fetch_discovery_doc(url):
     """Fetch discovery document for a given (short) API doc from the overall discovery document."""
-    if api_doc:
-        cached = from_cache(api_doc['id'])
-        if cached:
-            return cached
-        url = api_doc['discoveryRestUrl']
+    cachekey = url.replace('/', '_')
+    cached = from_cache(cachekey)
+    if cached:
+        return cached
     js = json.loads(requests.get(url).text)
-    to_cache(api_doc['id'], js)
+    to_cache(cachekey, js)
     return js
 
 
@@ -541,7 +540,7 @@
         return
 
     if args.doc:
-        discdoc = fetch_discovery_doc(url=args.doc)
+        discdoc = fetch_discovery_doc(args.doc)
         if 'error' in discdoc:
             print('Error while fetching document for', doc['id'], ':', discdoc)
             return
@@ -552,7 +551,7 @@
 
     for doc in docs:
         try:
-            discdoc = fetch_discovery_doc(doc)
+            discdoc = fetch_discovery_doc(doc['discoveryRestUrl'])
             if 'error' in discdoc:
                 print('Error while fetching document for', doc['id'], ':', discdoc)
                 continue