Source code for nokey.developer_tools.apis_guru

import requests_cache
from .. helperFuncs import make_request as mr

[docs] class APIsGuru: """ A class to interact with the APIs.guru API. Attributes: base_url: The base url for the APIs.guru API. about: A short description of the API. """ def __init__(self, use_caching=False, cache_name="api_gurus_cache", backend="sqlite", expire_after=3600): self.base_url = "https://api.apis.guru/v2/" self.about = "The APIs.guru API is a self-proclaimed Wikipedia for APIs, maintaining an Open API directory." if use_caching: requests_cache.install_cache(cache_name, backend=backend, expire_after=expire_after)
[docs] def get_docs_url(self): """ Returns the URL for the APIs.guru API documentation. Args: None Returns: string: The URL for the API docs. """ return "https://apis.guru/api-doc/"
[docs] def get_all_providers(self): """ Returns a list of all the providers in the API directory. Args: None Returns: dict: A dictionary containing a list of all the providers in the directory. """ endpoint = "providers.json" return mr.make_request(self.base_url+endpoint)
[docs] def get_apis_by_provider(self, provider): """ Returns a list of all the APIs for a particular provider. Args: provider (str): The name of the api provider. Returns: dict: A dictionary containing a list of all the APIs for a particular provider. """ endpoint = f"{provider}.json" return mr.make_request(self.base_url+endpoint)
[docs] def get_service_names_by_provider(self, provider): """ Returns a list of all the services for a particular provider. Args: provider (str): The name of the provider. Returns: dict: A dictionary containing a list of all the services for a particular provider. """ endpoint = f"{provider}/services.json" return mr.make_request(self.base_url+endpoint)
[docs] def get_particular_api_version_no_service_name(self, provider, api): """ Returns the API entry for one specific version of an API where there is no service name. Args: provider (str): The name of the provider. api (str): The api. Returns: dict: A dictionary containing the API entry for one specific version of an API where there is no service name. """ endpoint = f"specs/{provider}/{api}.json" return mr.make_request(self.base_url+endpoint)
[docs] def get_particular_api_version_with_service_name(self, provider, service, api): """ Returns the API entry for one specific version of an API where there is a s ervice name. Args: provider (str): The name of the provider. service (str): The name of the service. api (str): The name of the API. Returns: dict: A dictionary containing the API entry for one specific version of an API where there is a service name. """ endpoint = f"specs/{provider}/{service}/{api}.json" return mr.make_request(self.base_url+endpoint)
[docs] def get_all_apis(self): """ Returns a list of all the APIs in the API directory. Args: None Returns: dict: A dictionary containing a list of all the APIs in the directory. """ endpoint = "list.json" return mr.make_request(self.base_url+endpoint)
[docs] def get_basic_metrics(self): """ Returns basic metrics for the entire API directory. Args: None Returns: dict: A dictionary containing basic metrics for the entire directory. """ endpoint = "metrics.json" return mr.make_request(self.base_url+endpoint)