Django Rest Framework include_docs_urls добавляет _0 к действию - PullRequest
0 голосов
/ 25 августа 2018

В наших приложениях Django (Rest Framework) есть URL-адреса, такие как:

r'^endpoint/(?P<item>[a-z_-]+)/$'
r'^endpoint/(?P<item>[a-z_-]+)/(?P<version>[0-9]+(\.[0-9])?)/$'

У обоих есть доступные методы POST.

Мы некоторое время использовали Swagger для документирования нашего API, но хотели посмотреть документацию coreapi, включенную в Django Rest Framework.

При просмотре нашей документации, основанной на приведенной выше структуре, действие coreapi приводит к:

# Initialize a client & load the schema document
client = coreapi.Client()
schema = client.get("http://localhost:8081/docs/")

# Interact with the first url
action = ["app", "endpoint &gt; create"]

# Interact with the second url
action = ["app", "endpoint &gt; create_0"]

Я могу понять, откуда исходит create_0, но в идеале вместо этого следует добавить ключевое слово в качестве суффикса, например, create_version.

Возможно ли это?

1 Ответ

0 голосов
/ 26 августа 2018

Кажется, проблема в наличии двух ключевых слов, следующих друг за другом.

r'^endpoint/(?P<item>[a-z_-]+)/$'
r'^endpoint/(?P<item>[a-z_-]+)/(?P<version>[0-9]+(\.[0-9])?)/$'

Следует заменить на:

r'^endpoint/(?P<item>[a-z_-]+)/$'
r'^endpoint/(?P<item>[a-z_-]+)/version/(?P<version>[0-9]+(\.[0-9])?)/$'

Это даст вам:

action = ["endpoint", "item > version > create"]

Который выглядит намного чище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...