У нас есть URL-адреса в наших приложениях Django (Rest Framework), например:
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 > create"]
# Interact with the second url
action = ["app", "endpoint > create_0"]
Я могу понять, откуда взялся create_0, но в идеале он бы вместо этого добавил имя ключевого слова в качестве суффикса, например create_version.
Это возможно?





Кажется, проблема заключается в наличии двух ключевых слов, следующих друг за другом.
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"]
Что выглядит намного чище.