Я портирую свой API с Piston на TastyPie.У нас есть существующие клиенты, поэтому мы хотим сохранить структуру URL API-интерфейса неизменной.
Верхний уровень моего сайта urls.py conf выглядит следующим образом:
urlpatterns = patterns('',
........LOTS OF STUFF
(r'^v1/', include('api.urls')),
Используя Piston, каждый отдельный ресурс затем регистрируется независимо в api.urls и добавляется в urlpatterns, так что вы можетесмотрите / v1 / сделок / например.
Теперь у меня возникли некоторые проблемы при воссоздании этой структуры с TastyPie.На верхнем уровне urlpatterns объекта Tastypie Api () ожидает группу захвата с именем "api_name".По умолчанию v1 жестко закодирован как шаблон верхнего уровня, хотя вы можете переопределить его, передав «api_name» в качестве аргумента ключевого слова при создании экземпляра Api ().
Мой текущий файл api.urls.py выглядит следующим образом (с tastypie):
v1_api = Api()
v1_api.register(DealResource())
urlpatterns = patterns('',
(r'^', include(v1_api.urls)),
)
В результате шаблон, который будет сопоставлен для API,теперь '/ v1 / v1 / [имя_ресурса] /'.
Одна проблема заключается в том, что я не вижу, как я могу удалить ^ v1 / 'из URL верхнего уровня conf.Наша страница индекса соответствует '^ $', поэтому я не могу просто пойти по этому пути.
Полагаю, я мог бы просто зарегистрировать отдельные модельные ресурсы, а не объект API.Это кажется неоптимальным, хотя.Я не прав?
Я также рассмотрел создание подкласса объекта Tastypie Api и удаление группы захвата "api_name".
Есть мысли?