tomb_reflect

Add API to introspect routes for your Pyramid web app


License
MIT
Install
pip install tomb_reflect==0.0.1

Documentation

tomb_reflect

https://coveralls.io/repos/tomborine/tomb_reflect/badge.png?branch=master

Intro

Easily make your Pyramid-powered Web API introspectable.

All it takes is:

config.include('tomb_reflect', route_prefix='/api_info')

 # You could pass options to tomb_reflect_add_views to add auth, etc.
 config.tomb_reflect_add_views()

With this, your app now responds to 2 new URLs.

The first URL, /api_info/routes, returns a list of routes:

{
    "hello": {
        "route_pattern": "/hello"
    },
    "hello_name": {
        "route_pattern": "/hello_name/{name}"
    },
    "tomb_reflect.routes#index": {
        "route_pattern": "api_info/routes"
    },
    "tomb_reflect.routes#show": {
        "route_pattern": "api_info/routes/{route_name}"
    }
}

The second URL, /api_info/routes/{route_name}, returns detailed info for a specific route:

{
    "route_name": "hello",
    "route_pattern": "/hello",
    "view": "inventorysvc.views.hello.hello"
}

Configuration

If you want the URLs to be under a different root path, change the route_prefix in your config.include call:

config.include('tomb_reflect', route_prefix='/super/secret/place')

If you want the URLs to only be visible with certain permissions, require special authorization, etc., you can pass options to config.tomb_reflect_add_views:

# You can pass options to tomb_reflect_add_views to add auth, etc.
config.tomb_reflect_add_views(
    decorator=SomeCustomDecorator,
    permission='reflect')

Similar