-
Notifications
You must be signed in to change notification settings - Fork 236
Description
Allow users to search through navigation (name + endpoint [+ method?]).
Currently the user has to scroll through the navigation pane to discover the endpoint. When the user is unfamiliar with the API is may cause problems with discoverability. Search input filtering out methods, endpoints, types, and documentation documents by provided query could fix this issue.
Con here is that the API Console works as a embeddable component and howting application UI most probably already contain some form of search capability. In this case the user could be confused about the intent of APIC internal search and application search. Also it is not good UX to provide two separate search options for a single application.
Proposed options:
1: Search API
This is already implemented in the api-navigation element but not exposed to the api-console API. The navigation has query property that filters out navigation tree. More work on the UX may be required.
Hosting application would use this API to connect the search action inside the application with API console. When the console is rendered the search UI should trigger search action in the console using the API.
2: Dynamic search UI
Less UX friendly option but allows to add search capability in the console out of the box. The navigation component always has search input which is hidden by default. The user can trigger the search via UI action (button click) and perform regular search.
Cons:
- additional click to initiate the search action
- separated search capabilities when the hosting application has search capability
- possible confusion about intention of both search inputs
3: Configuration option to disable search
This would always render search input in the API navigation element but the console would expose configuration option to disable the input when required and the API to perform search. This way it would allow to expose search capability out of the box and fit the scenario when search is already exposed in the application.