Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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