Fix docs multiple nested and multiple methods by woile · Pull Request #5334 · encode/django-rest-framework (original) (raw)

Description

Multiple nested resources with multiple methods were not displayed. Also
detail_routes and list_routes with multiple methods. This PR attempts to fix it.
I created a template tag, that recursively finds the links inside a given section. What do you guys think?
I am not sure if the format I've given to the generated links it's okay, but it's a start.

Issues related:
#5324
#4391
#4965

Results

Default actions

users: {
    list()
    create()
    read(id)
    update(id)
}

screenshot from 2017-08-15 16-18-56


Single action

screenshot from 2017-08-15 16-19-30


Single detail_route url

users: {
    list()
    create()
    read(id)
    update(id)
    farmers(id) <--
}

screenshot from 2017-08-15 16-20-46


More than one detail_route url

users: {
    farmers: {
        read(id) <--
        update(id) <--
    }
    list()
    create()
    read(id)
    update(id)
}

screenshot from 2017-08-15 16-22-17


Nested routes

users: {
        animals: {
            dogs: {
                list(user_id, [page]) <--
                create(user_id, email, content, created) <--
            }
            list(user_id, [page]) <--
            create(user_id, email, content, created) <--
        }
        farmers: {
            read(id)
            update(id)
        }
        list()
        create()
        read(id)
        update(id)
    }

screenshot from 2017-08-15 16-23-16


Multiple resources with nested schema

users: {
    animals: {
        dogs: {
            list(user_id, [page])
            create(user_id, email, content, created)
        }
        list(user_id, [page])
        create(user_id, email, content, created)
    }
    farmers: {
        read(id)
        update(id)
    }
    list()
    create()
    read(id)
    update(id)
}
vets: {  <--
    animals: {
        dogs: {
            list(user_id, [page])
            create(user_id, email, content, created) 
        }
    }
}

screenshot from 2017-08-15 16-24-25


Multiple list_route url

users: {
    farmers: {
        read(id)
        update(id)
    }
    houses: {
        read() <--
        create() <--
    }
    list()
    create()
    read(id)
    update(id)
}

screenshot from 2017-08-15 16-31-20


Single list_route url (houses)

users: {
    farmers: {
        read(id)
        update(id)
    }
    list()
    create()
    houses() <--
    read(id)
    update(id)
}

screenshot from 2017-08-15 16-32-25