Skip to main content

Simple, efficient, intuitive API Framework

Project description

This is sample template to create a quick Python Falcon API application. It uses a schema defined in the resource for the route path and OpenAPI documentation. The base application will handle creating the routes and documentation automatically at runtime.

You define a resource and the documentation will be auto-generated at startup using the docstrings.

from reliqua.resources.base import Resource
from reliqua import status_codes as status


class User(Resource):

    __routes__ = [
        '/users/{id}',
    ]

    phone = phone

    def on_get(self, req, resp, id=None):
        """
        Retrieve a user. This value
        is awesome

        :param str id:       [in=path, required] User ID
        :param str email:    [in=query] User Email
        :param str phone:    [in=query, enum] Phone Numbers

        :response 200:
        :response 400:

        :return json:
        """
        try:
            resp.media = users[int(id)]
        except IndexError:
            resp.status = status.HTTP_404

    def on_delete(self, req, resp, id=None):
        try:
            users.pop(int(id))
            resp.media = {'success': True}
        except IndexError
            resp.status = status.HTTP_400

This will create the /users/{id} endpoint and corresponding API documentation. The OpenAPI documentation and swagger.json will be dynamically generate at application startup. The OpenAPI ui will be available at:

http://<api-url>/docs/

and the swagger.json file located at:

http://<api-url>/docs/swagger.json

To create an application, you import the application template.

from reliqua.app import Application

    
app = Application(
    bind='0.0.0.0:8000',
    proxy_api_url = 'http://example.com/api',
    workers=1,
    resource_path='/var/www/html/resources'
)
app.run()
Where:

bind:           Address and port to listen for requests. [host:port]
proxy_api_url:  The URL to the API when being used with a proxy, like nginx. If not supplied,
                then the bind address is used.
workers:        Number of worker threads to start.
resource_path:  This is where your python resource files are located.

Refer to the example application for more examples. You can install the library and example application

python setup.py install

You can execute the example application

$ reliqua-example 

From here the openapi-ui will be available at

http://localhost:8000/docs/

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

reliqua-0.0.7.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reliqua-0.0.7-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

Details for the file reliqua-0.0.7.tar.gz.

File metadata

  • Download URL: reliqua-0.0.7.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for reliqua-0.0.7.tar.gz
Algorithm Hash digest
SHA256 c4e2230fd3c38a82fd97023a4bafca35dae87b7d776bd620f47373097c16f1be
MD5 1c34ffa60129069dfaeb8c9e13fe24e8
BLAKE2b-256 6b18e3e4b0215ead4182c48205f832f3e70157534fc7a84fc13c533333102eca

See more details on using hashes here.

Provenance

The following attestation bundles were made for reliqua-0.0.7.tar.gz:

Publisher: publish-pypi.yml on tmeiczin/reliqua

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file reliqua-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: reliqua-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for reliqua-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 47be9313a60fe67b2ec6fb1d18c0e00a5a1336b3f86c04a810a987b89e764c0e
MD5 81ce782e30b989c861d6ee9c06d501da
BLAKE2b-256 46181da32e320d30246751072cf4e66fa82d2fff48b6c594c9991c816523ad50

See more details on using hashes here.

Provenance

The following attestation bundles were made for reliqua-0.0.7-py3-none-any.whl:

Publisher: publish-pypi.yml on tmeiczin/reliqua

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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