Создайте «страницу содержания» с помощью Cherrypy - PullRequest
0 голосов
/ 02 января 2019

У меня есть (корпоративный) сервер, на котором работает 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 является обязательным.

...