flexget.api.app module#
- exception flexget.api.app.APIError(message=None, payload=None)[source]#
Bases:
Exception- Parameters:
message (str | None)
- Return type:
None
- description = 'Server error'#
- response_model = <flask_restx.model.SchemaModel object>#
- status = 'Error'#
- status_code = 500#
- exception flexget.api.app.BadRequest(message=None, payload=None)[source]#
Bases:
APIError- Parameters:
message (str | None)
- Return type:
None
- description = 'Bad request'#
- status_code = 400#
- exception flexget.api.app.Conflict(message=None, payload=None)[source]#
Bases:
APIError- Parameters:
message (str | None)
- Return type:
None
- description = 'Conflict'#
- status_code = 409#
- exception flexget.api.app.NotFoundError(message=None, payload=None)[source]#
Bases:
APIError- Parameters:
message (str | None)
- Return type:
None
- description = 'Not found'#
- status_code = 404#
- exception flexget.api.app.NotModified(message=None, payload=None)[source]#
Bases:
APIError- Parameters:
message (str | None)
- Return type:
None
- description = 'not modified'#
- status_code = 304#
- exception flexget.api.app.PreconditionFailed(message=None, payload=None)[source]#
Bases:
APIError- Parameters:
message (str | None)
- Return type:
None
- description = 'Precondition failed'#
- status_code = 412#
- exception flexget.api.app.Unauthorized(message=None, payload=None)[source]#
Bases:
APIError- Parameters:
message (str | None)
- Return type:
None
- description = 'Unauthorized'#
- status_code = 401#
- exception flexget.api.app.ValidationError(validation_errors, message='validation error')[source]#
Bases:
APIError- description = 'Validation error'#
- response_model = <flask_restx.model.SchemaModel object>#
- status_code = 422#
- verror_attrs = ('message', 'cause', 'validator', 'validator_value', 'path', 'schema_path', 'parent')#
- class flexget.api.app.API(app=None, version='1.0', title=None, description=None, terms_url=None, license=None, license_url=None, contact=None, contact_url=None, contact_email=None, authorizations=None, security=None, doc='/', default_id=<function default_id>, default='default', default_label='Default namespace', validate=None, tags=None, prefix='', ordered=False, default_mediatype='application/json', decorators=None, catch_all_404s=False, serve_challenge_on_401=False, format_checker=None, url_scheme=None, default_swagger_filename='swagger.json', **kwargs)[source]#
Bases:
ApiSubclass of RestxAPI.
Extend a flask restx
flask_restx.Apiwith:methods to make using json schemas easier
methods to auto document and handle
ApiErrorresponses
- pagination_parser(parser=None, sort_choices=None, default=None, add_sort=None)[source]#
Return a standardized pagination parser, to be used for any endpoint that has pagination.
- Parameters:
parser (RequestParser) – Can extend a given parser or create a new one
sort_choices (tuple) – A tuple of strings, to be used as server side attribute searches
default (str) – The default sort string, used sort_choices[0] if not given
add_sort (bool) – Add sort order choices without adding specific sort choices
- Returns:
An api.parser() instance with pagination and sorting arguments.
- Return type:
RequestParser
- response(code_or_apierror, description='Success', model=None, **kwargs)[source]#
Extend
flask_restx.Api.response()to allow passing anApiErrorclass instead of response code.If an ApiError is used, the response code, and expected response model, is automatically documented.
- Parameters:
description (str)
- validate(model, schema_override=None, description=None)[source]#
When a method is decorated with this, json data submitted to the endpoint will be validated with the given model.
This also auto-documents the expected model, as well as the possible
ValidationErrorresponse.
- class flexget.api.app.APIClient[source]#
Bases:
objectA client which can be used as a more pythonic interface to the rest api.
It skips http, and is only usable from within the running flexget process.
- class flexget.api.app.APIEndpoint(endpoint, caller)[source]#
Bases:
object- Parameters:
endpoint (str)
caller (Callable)
- class flexget.api.app.APIResource(api, *args, **kwargs)[source]#
Bases:
ResourceAll api resources should subclass this class.
- Parameters:
api (RestxAPI)
- method_decorators = [<function with_session>, <function api_version>]#
- flexget.api.app.api_version(f)[source]#
Add the ‘API-Version’ header to all responses.
- Parameters:
f (Callable[..., Response])
- flexget.api.app.etag(method=None, cache_age=0)[source]#
Add an ETag header to the response and check for the “If-Match” and “If-Not-Match” headers to return an appropriate response.
- Parameters:
method (Callable | None) – A GET or HEAD flask method to wrap
cache_age (int) – max-age cache age for the content
- Returns:
The method’s response with the ETag and Cache-Control headers, raises a 412 error or returns a 304 response