У меня есть (корпоративный) сервер, на котором работает CherryPy (Python 2.7). На сервере у нас есть большое количество пользовательских сервисов (более 20), подключенных к различным URL-адресам. Как небольшая команда, нам трудно вести документацию для этих URL и сервисов; особенно когда они обновляются или добавляются новые услуги.
То, что я хотел бы сделать, это создать динамическую страницу «содержимого», которая включает (а) все смонтированные приложения (б) URL и (в) документацию / примечания по использованию. Например:
| Service | URL | Documentation |
|----------|-------------------------------|----------------------------|
| Report A | site.com/reporting/A/run | `?user=username&date=date` |
| Report A | site.com/reporting/A/index | `See all parameters` |
| Change | site.com/change/A/make_change | `?object=id` |
| Change | site.com/change/A/autochange | Only use for crontasks |
Вот что я пробовал:
Pycco
Вариант 1: использование Pycco для создания HTML из файла wsgi.py. Это здорово, так как у нас есть список всех подключенных приложений. Однако хранение служебной документации с использованием встроенных комментариев к каждому из путей несколько излишне, создает много инфляции в файле wsgi и на самом деле не решает проблему обновления программ отдельными модулями без обновления wsgi.py.
CherryPy.tree.apps
Используя что-то вроде >>> [k for k,v in cherrypy.tree.apps.iteritems()]
, я могу создать список всех URL. Однако это очень просто - нет возможности добавлять информацию о самом приложении. Было бы здорово иметь возможность связать список URL-адресов с отдельными модулями и использовать документацию к модулю для создания страницы содержимого.
Может кто-нибудь посоветовать, пожалуйста? Я могу устанавливать пакеты по мере необходимости, но CherryPy является обязательным.