Skip to content

restconf: Add simple "fields" query parameter support (RFC 8040 Sec 4.8.3)#656

Open
dima1308 wants to merge 1 commit intoclicon:masterfrom
dima1308:restconf-fields-query-parameter
Open

restconf: Add simple "fields" query parameter support (RFC 8040 Sec 4.8.3)#656
dima1308 wants to merge 1 commit intoclicon:masterfrom
dima1308:restconf-fields-query-parameter

Conversation

@dima1308
Copy link

@dima1308 dima1308 commented Mar 2, 2026

Implement top-level module filtering for GET /restconf/data via the "fields" query parameter as specified in RFC 8040 Section 4.8.3.

This simple implementation supports selecting root-level data nodes by module name and node name at the datastore root, separated by semicolons. For example:

GET /restconf/data?fields=ietf-interfaces:interfaces%3Bietf-system:system

The filter is applied as a post-processing step on the XML tree returned by the backend, removing children that do not match any entry in the fields list. It only takes effect when the request targets the data root (i.e. no api-path is given).

….8.3)

Implement top-level module filtering for GET /restconf/data via the
"fields" query parameter as specified in RFC 8040 Section 4.8.3.

This simple implementation supports selecting root-level data nodes
by module name and node name at the datastore root, separated by
semicolons. For example:

  GET /restconf/data?fields=ietf-interfaces:interfaces%3Bietf-system:system

The filter is applied as a post-processing step on the XML tree
returned by the backend, removing children that do not match any
entry in the fields list. It only takes effect when the request
targets the data root (i.e. no api-path is given).

Changes:
- apps/restconf/restconf_methods_get.c: Add restconf_fields_filter()
  helper and wire up "fields" query parameter parsing in api_data_get2()
- apps/backend/backend_state.c: Advertise
  urn:ietf:params:restconf:capability:fields:1.0 capability
- test/test_restconf_jukebox.sh: Implement RFC 8040 B.3.3 "fields"
  parameter tests (was previously commented out)
- test/test_yang_with_defaults.sh: Update capability assertions to
  include the new fields:1.0 capability
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant