Skip to main content

A flask blueprint providing a read-lny API for querying RDBMS

Project description

apisql

PyPI - Python Version

apisql is a flask blueprint providing an API for read-only access for a DBMS using direct SQL Queries

endpoints

/query

Returns query results in json format.

Query parameters that can be send:

  • query: The SQL query to execute on the DB. The query can be provided in plain text or base64 encoded.
  • num_rows: The maximum number of rows to return. If not specified, will return the aount defined in the configuration, the amount defined in the environment variable APISQL__MAX_ROWS or 100.

/download

Downloads query results in either csv, xls or xlsx format.

Query parameters that can be send:

  • query: The SQL query to execute on the DB. The query can be provided in plain text or base64 encoded.
  • format: Either csv or xlsx. Defaults to csv.
  • filename: The filename for the file to be downloaded, without the extension. Defaults to query-results.
  • formatters: A semicolon separated list of the headers for the output file. Headers should match the field names that appear in the query. Headers may contain one or more modifiers, which appear after a colon. The currently supported modifiers are:
    • number, to convert numeric values to strings
    • yesno, which converts boolean values to "Yes" / "No"
    • comma-separated, which converts arrays of strings to a comma separated list of these strings.

Example: For the following SQL:

select employee_name as "Employee Name", employee_salary as "Salary", is_manager as "Managerial role?" from employees

formatters could be specified as Employee Name;Managerial role?:yesno;Salary:number.

configuration

Flask configuration for this blueprint:

    from apisql import apisql_blueprint

    app.register_blueprint(
        apisql_blueprint(connection_string='psql://host/database', max_rows=1000, debug=False),
        url_prefix='/api/db/'
    )

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apisql-0.1.6.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

apisql-0.1.6-py2.py3-none-any.whl (19.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file apisql-0.1.6.tar.gz.

File metadata

  • Download URL: apisql-0.1.6.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.8

File hashes

Hashes for apisql-0.1.6.tar.gz
Algorithm Hash digest
SHA256 3bef0f5c94c44c3188e9b10aa39a42a43a73f8085698d039658c9cb8d333228b
MD5 c41d1b8727478cc035eee1e3dc6bd1bb
BLAKE2b-256 f76280b7eac6e8d2ab04268602cdb74f2c7a3ff3908e43ecf59337bfdf94b855

See more details on using hashes here.

Provenance

File details

Details for the file apisql-0.1.6-py2.py3-none-any.whl.

File metadata

  • Download URL: apisql-0.1.6-py2.py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.8

File hashes

Hashes for apisql-0.1.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ccd2c3534e5bab846f0bc4989a9c4ec231df49ac39f07c5f8b8e123b81bd2a12
MD5 bc0a1c3a3236d5cd486618af35b0209d
BLAKE2b-256 227aa1bcaa84762962e76bab889eb8be734e2cf41167fc5d723168b6f6a50591

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page