3

I’m working on Oracle APEX (v 23.1) with Friendly URL mode enabled. I want to generate a page URL where the value of a page item appears in the path, not in the query string.

For example, this is the standard output of apex_page.get_url:

SELECT apex_page.get_url(
    p_application => 500,
    p_page        => 640,
    p_items       => 'P640_ID',
    p_values      => '34491622'
)
FROM dual;

Result:

f?p=500:640:::::P640_ID:34491622

With Friendly URLs enabled, this turns into something like:

https://server/ords/r/app/page?P640_ID=34491622

But what I want is something like:

https://server/ords/r/app/page/34491622

Basically, I want the item value to become part of the path parameters, not the query string. Is there a supported way in Oracle APEX to generate a Friendly URL where page item values automatically become path parameters?

1 Answer 1

0

According to the doc, the syntax of a friendly url is

http://hostname:port/ords/r/path_prefix/app_alias/page_alias?parameters 
(Such as — p7_customer_id=377&clear=7&session=1247058356345&cs=3MdkfQa9NLmkyHAbwGPg3U-nmA7XIw5sWjU2rMzSvOy_wP1_z7BBI-Gbh2JgvffARgcYJy8id4VtL3d0l1tYm0w)

so based on that, I'd think that it's not possible.

I'm not sure how your request would work if there is > 1 parameter, or any other setting like request, debug, clear, session, checksum that needs to be passed as part of the url.

One solution - there might be others - is to create a rest endpoint yourself that attempts to translate an incoming url with format .../page/id to .../page?p1_item=id and passes the original url if it cannot be mapped. I have not tested this, it's just an idea.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.