如何在url中传递RESTAPI的列表?

如何在url中传递RESTAPI的列表?,rest,oracle-apex,oracle-ords,Rest,Oracle Apex,Oracle Ords,我试图将ID列表传递给RESTAPI(apex) 我有这样一个url: https://apex.oracle.com/***/apex/anime_keeper/ak/getAnimeList/:ids 当我这样做时: https://apex.oracle.com/***/apex/anime_keeper/ak/getAnimeList/1 我获得id为1的项目,但如果我这样做: https://apex.oracle.com/***/apex/anime_keeper/ak/getA

我试图将ID列表传递给RESTAPI(apex)

我有这样一个url:

https://apex.oracle.com/***/apex/anime_keeper/ak/getAnimeList/:ids
当我这样做时:

https://apex.oracle.com/***/apex/anime_keeper/ak/getAnimeList/1
我获得id为1的项目,但如果我这样做:

https://apex.oracle.com/***/apex/anime_keeper/ak/getAnimeList/1,2,3
我得到一个500内部服务器错误

我应该如何格式化我的url,以便我可以使用a
中的1,2,3列表,其中id位于(ids)

这是ORD的屏幕截图,如果它可以帮助:


在URL中,逗号“,”具有特殊含义/用途。它可以在url中分隔查询参数,例如

https://test.me/mypage?firstname=jon,lastname=doe,gender=m
所以服务器在发现损坏或不完整的键/值对时抛出500错误。它需要在每个逗号后面有一对key=value。为了解决这个问题,我们需要对值进行URL编码,例如

https://apex.oracle.com/***/apex/anime_keeper/ak/getAnimeList/1%2C2%2C3

在URL中,逗号“,”具有特殊含义/用途。它可以在url中分隔查询参数,例如

https://test.me/mypage?firstname=jon,lastname=doe,gender=m
所以服务器在发现损坏或不完整的键/值对时抛出500错误。它需要在每个逗号后面有一对key=value。为了解决这个问题,我们需要对值进行URL编码,例如

https://apex.oracle.com/***/apex/anime_keeper/ak/getAnimeList/1%2C2%2C3

因为ORDS没有将csv值拆分出来,所以SQL无法工作。因此,sql原样将检查('1,2,3')中的
id
而不是(1,2,3)中的
id

有多种方法可以达到目的

例如,使用XMLTABLE

SELECT rownum,object_id
  FROM user_objects
 WHERE rownum IN (
   select (column_value).getstringval() csv_values
        FROM   
     xmltable(('"' || REPLACE(:ids, ',', '","')|| '"'))
 )
这里还提到了其他方法:

这里有一个ORDS REST API,它正是您想要的。

SQL将无法工作,因为ORD不会将csv值拆分出来。因此,sql原样将检查('1,2,3')中的
id
而不是(1,2,3)中的
id

有多种方法可以达到目的

例如,使用XMLTABLE

SELECT rownum,object_id
  FROM user_objects
 WHERE rownum IN (
   select (column_value).getstringval() csv_values
        FROM   
     xmltable(('"' || REPLACE(:ids, ',', '","')|| '"'))
 )
这里还提到了其他方法:

这里有一个ORDS REST API,它正是您想要的。

谢谢你的回答,我现在理解URL加密,但是我在新URL上仍然有500个错误,你知道这个问题吗?谢谢你的回答,我现在理解URL加密,但是我在新URL上仍然有500个错误,对这个问题有什么想法吗?我知道我不应该问这个问题,但是你能帮我解决这个问题吗?我知道我不应该问这个问题,但是你能帮我解决这个问题吗?