cowbird.api.generic
Attributes
Classes
Utility that will try to resolve a path without appended slash if one was provided. |
Functions
Overrides default HTTP. |
|
Overrides the default |
|
|
Guess the best applicable response |
Tween that validates that the specified request |
|
Tween that obtains the request |
|
|
Obtains additional exception content details about the |
|
Obtains additional content details about the |
Module Contents
- class cowbird.api.generic.RemoveSlashNotFoundViewFactory(notfound_view: Callable[[pyramid.request.Request], cowbird.typedefs.AnyResponseType] | None = None)[source]
Bases:
objectUtility that will try to resolve a path without appended slash if one was provided.
- cowbird.api.generic.internal_server_error(request: pyramid.request.Request) pyramid.httpexceptions.HTTPException[source]
Overrides default HTTP.
- cowbird.api.generic.not_found_or_method_not_allowed(request: pyramid.request.Request) pyramid.httpexceptions.HTTPException[source]
Overrides the default
HTTPNotFound[404] by appropriateHTTPMethodNotAllowed[405] when applicable.Not found response can correspond to underlying process operation not finding a required item, or a completely unknown route (path did not match any existing API definition). Method not allowed is more specific to the case where the path matches an existing API route, but the specific request method (GET, POST, etc.) is not allowed on this path.
Without this fix, both situations return [404] regardless.
- cowbird.api.generic.guess_target_format(request: pyramid.request.Request) Tuple[str, bool][source]
Guess the best applicable response
Content-Typeheader according to requestAcceptheader andformatquery, or defaulting toCONTENT_TYPE_JSON.- Returns:
tuple of matched MIME-type and where it was found (
True: header,False: query)
- cowbird.api.generic.validate_accept_header_tween(handler: Callable[[pyramid.request.Request], pyramid.response.Response], registry: pyramid.registry.Registry) Callable[[pyramid.request.Request], pyramid.response.Response][source]
Tween that validates that the specified request
Acceptheader orformatquery (if any) is supported by the application and for the given context.- Raises:
HTTPNotAcceptable – if desired
Content-Typeis not supported.
- cowbird.api.generic.apply_response_format_tween(handler: Callable[[pyramid.request.Request], pyramid.httpexceptions.HTTPException], registry: pyramid.registry.Registry) Callable[[pyramid.request.Request], pyramid.response.Response][source]
Tween that obtains the request
Acceptheader orformatquery (if any) to generate the response with the desiredContent-Type.The target
Content-Typeis expected to have been validated byvalidate_accept_header_tween()beforehand to handle not-acceptable errors.The tween also ensures that additional request metadata extracted from
get_request_info()is applied to the response body if not already provided by a previous operation.
- cowbird.api.generic.get_exception_info(response: pyramid.httpexceptions.HTTPException | pyramid.request.Request | pyramid.response.Response, content: cowbird.typedefs.JSON | None = None, exception_details: bool = False) cowbird.typedefs.JSON[source]
Obtains additional exception content details about the
responseaccording to available information.