Skip to main content

Provides wrapper around Falcon web framework, adding class-app-layer support

Project description

Classic HTTP Api

This package provides base for http APIs, based Falcon framework.

Part of project "Classic".

Usage:

from classic.http_api import App


class Reports:
    
    def on_get_for_day(self, request, response):
        response.media = {'day': 'report'}
        
    def on_get_for_month(self, request, response):
        response.media = {'day': 'period'}

        
app = App()

# Will generate URLs:
# /api/reports/for_day
# /api/reports/for_month
app.register(Reports())

# If we need to customize url:
app.register(Reports(), url='/order_reports')
# Urls will be:
# /api/order_reports/for_day
# /api/order_reports/for_month

# We may register methods only:
app.add_method('/reports/daily', Reports(), suffix='for_day')
# Url will be /api/reports/daily

# prefix may be customized in App class:
app = App(prefix='/api/custom')

# Now, URL will be /api/custom/reports/daily
app.add_method('/reports/daily', Reports(), suffix='for_day')

Also, App class can transform pydantic.ValidationError, AppError and ErrorsList from classic.app to formats:

ValidationError:

[
  {
    "type": "namespace.error_code",
    "msg": "Verbose message",
    "loc": ["path", "to", "error"] 
  }
]

AppError:

[
  {
    "type": "namespace.error_code",
    "msg": "Verbose message",
    "ctx": {"any_key": "any_useful_info"}
  }
]

Also, this response statuses in this cases will be 400.

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

classic-http-api-1.0.0.tar.gz (4.6 kB view hashes)

Uploaded Source

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