FAQ#

Can I change the case of the output?

Be default url endpoints are pluralized kebab-case, resources are camelCase and resource fields are snake_case.

You can change the default behaviour easily by adding the below global flask configurations:

Options are: camel, pascal, snake, kebab, screaming_kebab, screaming_snake

Can I block http methods in my API?

Http method’s can be blocked easily, on a global or a model level. See here for full information on how to block methods.

Example blocking all DELETE & POST methods:

app.config['API_BLOCK_METHODS'] = ['DELETE', 'POST]

Example blocking DELETE & POST methods on a specific model:

class MyModel(Model):
    class Meta:
        block_methods = ['DELETE', 'POST']

Alternatively, If you want to only allow GET requests you can turn on the API_READ_ONLY option in the Flask configuration, which will block all but GET requests from being served.

Can I extend the functionality of the API?

If you need to perform some custom logic or actions, you can use callbacks. Callbacks are functions that fire:

  • before the database query is performed

  • before the data is returned to the api

  • on an exception being raised

See the below configuration values that can be defined globally as Flask configurations or on a model level.

I use soft deletes, what can I do?

If you need to perform soft deletes, you can use the API_SOFT_DELETE configuration as a Flask global configuration.

Additonal configuration values to set the attribute that holds the delete flag and the value that represents the active and deleted value is also needed.

See the below configuration values that can be defined globally as Flask configurations or on a model level.