私はReSTful SICFサービスを顧客に実装しています。 SICFサービスには単一のハンドラ(IF_HTTP_EXTENSION~HANDLE_REQUEST
を実装しています)があり、これはさらにAPI処理クラスを呼び出します。 APIハンドリングクラスは、APIが/animals/:id/tiger/:id
が/animals/4545152/tiger/1423331
のように見えますがコールされると、このABAP選択クエリでパターンをどのように一致させるのですか?
DDIC Table: ZAPI_HNLDRS
/animals/:id | ZCL_HANDLE_ANIMALS
/animals/:id/tiger/:id | ZCL_HANDLE_TIGER
のように入ってくるパスに対して保存されています。
ZCL_HANDLE_TIGERを取得するためにZAPI_HNDLRSを呼び出すにはどうすればよいですか?もちろん
、これは、
select single HANDLING_CLASS from ZAPI_HNDLRS
into <wa> where uri = '/animals/4545152/tiger/1423331'
を助けにはなりません私は何らかの形でREGEXを使用する必要が信じている - 私はどのようにかかわらず、必ずamn't。 ABAP選択クエリでパターンをどのように一致させるのですか?私は、全体のプロセスが動的になりたいので
更新
私はAPIハンドラを格納するためのテーブルを持っている理由があります。
このようになる可能性のある一定期間に渡って追加できる新しいURLがある可能性があります。
スプリットを使用していただきありがとうございました しかし、まだ完全に動的ではありません。将来新しいURLが複数出現する可能性があります。例えば。
/animals/:id/tiger/:id/claws
/animals/:id/tiger/:id/claws/:id
:id - is an unique id
このようなケースが発生
、テーブルZAPI_HNDLRS
で新しいハンドラのエントリが存在します。
したがって、すべての受信リソースパスを変換するための汎用ロジックが必要です。さんが言わせて:それは私が右のハンドラがテーブルからピックアップして知っているように、/animals/:id/tiger/:id/claws
を保存されている模様だ/animals/1234243242423/tiger/32423443344/claws
に。