I have a project written in Django 2.x.
I want to add automatic documentation to it using drf-spectacular. I'm using drf-spectacular=0.15.1
at the moment.
I'm running my project in Docker, and the build context for my api container is set as the root folder of the api project.
When I run the command to generate the schema, ./manage.py spectacular --file schema.yml
, the script creates a schema.yml
file in the root of my api project, but my Django settings.py
are found one level below, in a folder called my_website
. The structure of the project is like this:
main-project
\api
\_my_website
__init__.py
apps.py
settings.py
urls.py
schema.yml
\client
docker-compose.yml
So in settings.py
I added specific settings to tell Swagger-UI where from to take the schema, as specified in the drf-spectacular
documentation:
SPECTACULAR_SETTINGS = {
'SWAGGER_UI_SETTINGS': {
'url': 'schema.yml'
},
}
Once I try to access the swagger-ui url in my project to check that the schema is loaded there, I get the error: **Fetch error** Not Found schema.yml
. I tried passing the schema url in various ways, for example through relative url ../schema.yml
but that didn't work either. Maybe somebody can give me an idea of what I'm doing wrong.
Thanks!
From the swagger-configuration doc,
thus, the
url
value must be either a "relative URL" or "absolute URL".For example