Skip to Main Content
Feature Request FR-3795
Product Area Developer Experience
Status OPEN

2 Voters

ORACLE APEX needs to have its own Router (Navigation Router, url, fragments, params, query params, optional params, etc)

miguel escamilla Public
· May 15 2024

Idea Summary
ORACLE APEX needs to have its own Router (Navigation Router, url, fragments, params, query params, optional params, etc) I know that fields are an easy and convenient way of storing and retrieving data, but enterprise applications need a more robust and standard way of getting info from the url. 

Use Case
We need to be able to fetch data from the url from pages and lists. If I have a menu that navigates to multiple pages, I need to create a list for each page so that I can call the correct  hidden text field. 

Preferred Solution (Optional)
I should be able to call the APEX Router and get the param or query param that I need. We need a router like Angular, React, or PHP has.

This idea is open.

Comments

Comments

  • jayson hanes Admin OP 4 weeks ago

    I'm not understanding the challenge here - you can create application (and global) level items that can then be used like this (as URL parameters) and are accessible via PL/SQL or JS today.

    ‘idea’ is not a page item here.

  • andrea galizzi OP 3 weeks ago

    @jayson hanes yes, you can create global page items, but the friendly URLs structure is fixed:

    /r/workspace/app/page?parameter=value
    

    A router would add more flexibility to create custom and even dynamic paths.

    Examples

    As today, the URL are something like this:

    /r/my-workspace/my-app/orders
    /r/my-workspace/my-app/order?order_id=123
    /r/my-workspace/my-app/order-detail?order_id=123&order_detail_id=1
    /r/my-workspace/my-app/products?manufacturer=example&p50_color=red&p50_size=L
    /r/my-personal-workspace/my-blog-app/post?title=what-is-oracle-apex
    

    I would like to create something like this:

    /my-app/orders
    /my-app/orders/123
    /my-app/orders/123/1
    /my-app/example/products?color=red&size=L
    /my-blog-app/post/what-is-oracle-apex
    

    To achieve this, in the App Builder I would have to set my custom routing options.

    At global level:

    • ^/my-app/* is linked to the app 100 in the workspace my-workspace.
    • ^/my-blog-app/* is linked to the app 300 in the workspace my-personal-workspace.

    At application level (app 100):

    1. /orders/{order_id}/{detail_id} redirect to page 20 of the app, setting P20_ORDER_ID and P20_ORDER_DETAIL_ID.
    2. /orders/{order_id} redirect to page 10, setting P10_ORDER_ID.
    3. /orders redirect to page 1.
    4. /{manufacturer}/products redirect to page 50, setting P50_MANUFACTURER.

    At application level (app 300):

    1. /post/{slug-title} redirect to page 30 of the app, setting the item P30_POST_SLUG_TITLE.

    At page level (app 100, page 50):

    1. The query parameter color is linked to the page item P50_COLOR.
    2. The query parameter size is linked to the page item P50_SIZE.

    Similiar ideas

  • andrea galizzi OP 3 weeks ago

    A real use case is the official APEX website:

    https://apex.oracle.com/en/platform/features/whats-new-232/
    

    Somehow it uses a dynamic route that is not the classic friendly URLs format:

    /r/workspace/app/page
    
  • fac586 OP 3 weeks ago

    A real use case is the official APEX website:

    https://apex.oracle.com/en/platform/features/whats-new-232/
    

    Somehow it uses a dynamic route that is not the classic friendly URLs format:

    /r/workspace/app/page
    

    That's because it is just a static HTML page, not an APEX application.

  • jayson hanes Admin OP 3 weeks ago

    @andrea galizzi This sounds more like an enhancement to ORDS than to APEX itself - APEX is not the webserver in this architecture.

  • miguel escamilla OP 6 days ago

    @jayson hanes I agree, but APEX needs to be able to call or access that router and get or set values!