monarch-initiative / biolink-api

API for linked biological knowledge
https://api.monarchinitiative.org/api/
BSD 3-Clause "New" or "Revised" License
63 stars 25 forks source link

Configuration of endpoints in BioLink (closed) #236

Closed deepakunni3 closed 5 years ago

deepakunni3 commented 5 years ago

Added the ability to initialize routes as dictated by config.yaml. Currently the config.yaml includes all routes (by default).

The idea is to have an implementation specific config.yaml (for example GO BioLink API specific config.yaml) that defines which routes to initialize.

@cmungall @lpalbou Related to #235. Let me know what you think.

If this approach seems feasible then I can start breaking biolink.api.bio.endpoints.bioentity into resource specific chunks. This way it would be easy to mix and match different parts of the API and show only the relevant routes.

deepakunni3 commented 5 years ago

How config.yaml would look like:

solr_assocs:
  url: "https://solr.monarchinitiative.org/solr/golr"
  timeout: 5
amigo_solr_assocs:
  url: "http://golr.berkeleybop.org"
  timeout: 4
solr_search:
  url: "https://solr.monarchinitiative.org/solr/search"
  timeout: 2
amigo_solr_search:
  url: "http://golr.berkeleybop.org"
  timeout: 2
sparql:
  url: "http://sparql.hegroup.org/sparql"
  timeout: 2
scigraph_ontology:
  url: "https://scigraph-ontology.monarchinitiative.org/scigraph/"
  timeout: 2
scigraph_data:
  url: "https://scigraph-data.monarchinitiative.org/scigraph/"
  timeout: 2
use_amigo_for:
  - function
ontologies:
  - id: go
    handle: go
    pre_load: true
  - id: hp
    handle: hp
    pre_load: true
  - id: mp
    handle: mp
    pre_load: true
  - id: uberon
    handle: uberon
    pre_load: true
  - id: monarch
    handle: data/monarch.json
    pre_load: true
biolink_modules:
  - 'biolink.api.bio.endpoints.bioentity'
  - 'biolink.api.link.endpoints.associations_from'
  - 'biolink.api.link.endpoints.find_associations'
  - 'biolink.api.search.endpoints.entitysearch'
  - 'biolink.api.ontol.endpoints.ontology_endpoint'
  - 'biolink.api.ontol.endpoints.subgraph'
  - 'biolink.api.ontol.endpoints.termstats'
  - 'biolink.api.ontol.endpoints.labeler'
  - 'biolink.api.ontol.endpoints.enrichment'
  - 'biolink.api.entityset.endpoints.summary'
  - 'biolink.api.entityset.endpoints.slimmer'
  - 'biolink.api.entityset.endpoints.geneset_homologs'
  - 'biolink.api.entityset.endpoints.overrepresentation'
  - 'biolink.api.nlp.endpoints.annotate'
  - 'biolink.api.graph.endpoints.node'
  - 'biolink.api.ontol.endpoints.subgraph'
  - 'biolink.api.mart.endpoints.mart'
  - 'biolink.api.cam.endpoints.cam_endpoint'
  - 'biolink.api.owl.endpoints.ontology'
  - 'biolink.api.patient.endpoints.individual'
  - 'biolink.api.identifier.endpoints.prefixes'
  - 'biolink.api.identifier.endpoints.mapper'
  - 'biolink.api.genome.endpoints.region'
  - 'biolink.api.pair.endpoints.pairsim'
  - 'biolink.api.evidence.endpoints.graph'
  - 'biolink.api.relations.endpoints.relation_usage'
  - 'biolink.api.variation.endpoints.variantset'
  - 'biolink.api.pub.endpoints.pubs'
deepakunni3 commented 5 years ago

@cmungall Did you happen to take a look at #237 ? Just wanted to make sure which approach would be more flexible in the long run.

deepakunni3 commented 5 years ago

Closing this PR in favor of https://github.com/biolink/biolink-api/pull/237