def swagger_spec(user, repo, sha=None, content=None): glogger.info("-----> Generating swagger spec for /{}/{} on commit {}".format(user,repo,sha)) # Init provenance recording if user is not None and repo is not None: prov_g = grlcPROV(user, repo) gh = Github(static.ACCESS_TOKEN) gh_repo = gh.get_repo(user + '/' + repo) else: prov_g = None gh_repo = None swag = utils.build_swagger_spec(user, repo, sha, static.SERVER_NAME, prov_g, gh_repo) if user is not None and repo is not None: prov_g.end_prov_graph() swag['prov'] = prov_g.serialize(format='turtle') # prov_g.log_prov_graph() resp_spec = make_response(jsonify(swag)) resp_spec.headers['Content-Type'] = 'application/json' if 'text/turtle' in request.headers['Accept']: resp_spec = make_response(utils.turtleize(swag)) resp_spec.headers['Content-Type'] = 'text/turtle' resp_spec.headers['Cache-Control'] = static.CACHE_CONTROL_POLICY # Caching JSON specs for 15 minutes glogger.info("-----> API spec generation for /{}/{} on commit {} complete".format(user, repo, sha)) return resp_spec
def swagger_spec_default(user, repo): glogger.info("Generating default spec for /" + user + "/" + repo) swag = utils.build_swagger_spec(user, repo, app.config["SERVER_NAME"], default=True) resp_spec = make_response(jsonify(swag)) resp_spec.headers["Cache-Control"] = "public, max-age=900" # Caching JSON specs for 15 minutes return resp_spec
def swagger_spec(user, repo): glogger.info("Generating swagger spec for /" + user + "/" + repo) swag = utils.build_swagger_spec(user, repo, app.config["SERVER_NAME"]) # Store the generated spec in the cache # cache_obj[api_repo_uri] = {'date' : json.dumps(datetime.datetime.now(), default=util.date_handler).split('\"')[1], 'spec' : swag} # with open(cache.CACHE_NAME, 'w') as cache_file: # json.dump(cache_obj, cache_file) # glogger.debug("Local cache updated") resp_spec = make_response(jsonify(swag)) resp_spec.headers["Cache-Control"] = "public, max-age=900" # Caching JSON specs for 15 minutes return resp_spec