Add parent and child prefixes to API response #4272

Closed
opened 2025-12-29 18:34:20 +01:00 by adam · 5 comments
Owner

Originally created by @soer7022 on GitHub (Nov 12, 2020).

Proposed Functionality

Make the api call /api/ipam/prefixes/ID return the parent and child prefixes for the prefix.

Use Case

It is currently rendered on the page for the prefix but not in the API, it would be really helpful to be able to make a tree based on these prefixes. Also for use cases where we are only interested in very general or very specific prefixes. For example I would want to get all prefixes with no parents to get the large prefixes.

Database Changes

This should already be available in the database since it can be displayed on the web version of netbox.

External Dependencies

None that I'm aware of

Originally created by @soer7022 on GitHub (Nov 12, 2020). <!-- NOTE: IF YOUR ISSUE DOES NOT FOLLOW THIS TEMPLATE, IT WILL BE CLOSED. This form is only for proposing specific new features or enhancements. If you have a general idea or question, please post to our mailing list instead of opening an issue: https://groups.google.com/g/netbox-discuss NOTE: Due to an excessive backlog of feature requests, we are not currently accepting any proposals which significantly extend NetBox's feature scope. Please describe the environment in which you are running NetBox. Be sure that you are running an unmodified instance of the latest stable release before submitting a bug report. --> <!-- Describe in detail the new functionality you are proposing. Include any specific changes to work flows, data models, or the user interface. --> ### Proposed Functionality Make the api call /api/ipam/prefixes/ID return the parent and child prefixes for the prefix. <!-- Convey an example use case for your proposed feature. Write from the perspective of a NetBox user who would benefit from the proposed functionality and describe how. ---> ### Use Case It is currently rendered on the page for the prefix but not in the API, it would be really helpful to be able to make a tree based on these prefixes. Also for use cases where we are only interested in very general or very specific prefixes. For example I would want to get all prefixes with no parents to get the large prefixes. <!-- Note any changes to the database schema necessary to support the new feature. For example, does the proposal require adding a new model or field? (Not all new features require database changes.) ---> ### Database Changes This should already be available in the database since it can be displayed on the web version of netbox. <!-- List any new dependencies on external libraries or services that this new feature would introduce. For example, does the proposal require the installation of a new Python package? (Not all new features introduce new dependencies.) --> ### External Dependencies None that I'm aware of
adam closed this issue 2025-12-29 18:34:20 +01:00
Author
Owner

@jeremystretch commented on GitHub (Nov 12, 2020):

That would impose an unreasonable degree of overhead to include information that very often isn't needed. Instead, you can simply make two API calls: One to retrieve the prefix, and the second (if needed) to retrieve its children.

@jeremystretch commented on GitHub (Nov 12, 2020): That would impose an unreasonable degree of overhead to include information that very often isn't needed. Instead, you can simply make two API calls: One to retrieve the prefix, and the second (if needed) to retrieve its children.
Author
Owner

@soer7022 commented on GitHub (Nov 12, 2020):

That would impose an unreasonable degree of overhead to include information that very often isn't needed. Instead, you can simply make two API calls: One to retrieve the prefix, and the second (if needed) to retrieve its children.

The main problem is that I can only receive children, not parents. Thus I am unable to find the root of my tree.

@soer7022 commented on GitHub (Nov 12, 2020): > That would impose an unreasonable degree of overhead to include information that very often isn't needed. Instead, you can simply make two API calls: One to retrieve the prefix, and the second (if needed) to retrieve its children. The main problem is that I can only receive children, not parents. Thus I am unable to find the root of my tree.
Author
Owner

@jeremystretch commented on GitHub (Nov 12, 2020):

The contains filter is provided for this reason. Please see the REST API documentation for details.

@jeremystretch commented on GitHub (Nov 12, 2020): The `contains` filter is provided for this reason. Please see the REST API documentation for details.
Author
Owner

@soer7022 commented on GitHub (Nov 12, 2020):

The contains filter is provided for this reason. Please see the REST API documentation for details.

This filter is completely infeasible for cleaning an export of 1000+ prefixes
An example could be:

  • Get all prefixes, save these in a set or list
  • Find a top level prefix for one of these prefixes
  • Remove all the prefixes that share this parent

This is (as far as I can see) not possible with the current api. Without calling contains on all prefixes and removing them if they have a parent.

If this is possible, please enlighten me.

P.S sorry for turning this in to tech support thursday...

@soer7022 commented on GitHub (Nov 12, 2020): > The `contains` filter is provided for this reason. Please see the REST API documentation for details. This filter is completely infeasible for cleaning an export of 1000+ prefixes An example could be: - Get all prefixes, save these in a set or list - Find a top level prefix for one of these prefixes - Remove all the prefixes that share this parent This is (as far as I can see) not possible with the current api. Without calling contains on all prefixes and removing them if they have a parent. If this is possible, please enlighten me. P.S sorry for turning this in to tech support thursday...
Author
Owner

@jeremystretch commented on GitHub (Nov 12, 2020):

Please post to the mailing list if you need further assistance.

@jeremystretch commented on GitHub (Nov 12, 2020): Please post to the mailing list if you need further assistance.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#4272