The main goal of this project is to make Django Rest Framework documentation easier and more automatic. Audoma is an extension of drf-spectacular. Main goals of this project are:
- Make documentation more accurate, make schema include more information about views.
- Include some external library solutions as default, and document them properly.
- Make code and documentation more consistent, and avoid situations when documentation differs from code.
- Extend basic rest-framework functionalities
Installation and configuration
- More explicit documentation of permissions and filters/search fields.
- More ways of defining serializer_class on viewset.
- Native documentation of MoneyField, PhoneField.
- Possibility to define examples on the serializer field.
- New decorator
@audoma_action
for more consistent documentation, modifying action behavior. - Modified
@extend_schema_field
decorator behavior, now it's updating field info, not overriding it. - Added Bulk create/delete/update serializer mixins.
You can easily test audoma functionalities with our example application.
This can be done easily by using docker
and docker-compose
.
You simply have to:
- clone the repository
- enter cloned project root folder
- got to
docker/
- run
docker-compose up example_app
Now the example application should be running under https://localhost:8000
.
If you want to visit example documentation you should visit /redoc
or /swagger-ui
.
If you want to modify the example application you'll find its content inside /audoma_examples
folder.
Project has defined code style and pre-commit hooks for effortless code formatting.
To setup pre-commit hooks inside repo run:
$ pip install -r requirements_dev.txt
$ pre-commit install
From now on your commits will fail if your changes break code conventions of the project.
To format project and apply all code style conventions run:
$ ./autoformat.sh
This command can be triggered automatically by IDE on file save or on file change.