Upgrade to Pro — share decks privately, control downloads, hide ads and more …

René Santoris - REST a MICROSERVICES

APEX solutions
October 31, 2023
41

René Santoris - REST a MICROSERVICES

APEX solutions

October 31, 2023
Tweet

Transcript

  1. 1

  2. RESTové služby v Oracle APEX 3 • K čomu slúžia

    RESTové služby? • Rýchle vytvorenie RESTovej služby v Apexe • Vytvorenie autorizácie konzumenta – OAuth Access Tokens • Obmedzovanie konzumenta - Virtual Private Database (VPD)
  3. K čomu slúžia RESTové služby? 5 • RESTové služby (z

    anglického Representational State Transfer) slúžia na vytvorenie jednotného rozhrania pre komunikáciu medzi rôznymi systémami
  4. Rýchle vytvorenie RESTovej služby v Apexe 10 Pole objektov WITH

    add_info AS (SELECT empno, json_array( json_object('SAL' VALUE sal, 'COMM' VALUE comm ) format json returning clob) AS money FROM emp) SELECT e.empno, e.ename, e.job, a.money as "{}money" FROM emp e JOIN add_info a ON a.empno = e.empno where e.empno = :id
  5. Vytvorenie autorizácie konzumenta 13 1. Vytvorenie Privileges 2. Vyplníte názov

    3. Priradíte rolu 4. Vyplníte url patern, ktorý má byť dostupný, len s autorizáciou
  6. Vytvorenie autorizácie konzumenta Oauth - Token 14 Vytvorenie uživateľa (client),

    ktorý bude konzumovať data begin OAUTH.create_client( p_name => 'JA_SOM_UZIVATEL', p_grant_type => 'client_credentials', p_privilege_names => 'api_access_priv', p_support_email =>'[email protected]‘ ); OAUTH.grant_client_role( p_client_name => 'JA_SOM_UZIVATEL', p_role_name => 'api_access_role' ); COMMIT; END;
  7. Vytvorenie autorizácie konzumenta -Token 16 Template curl -i -k –user

    <<CLIENT_ID>>:<<CLIENT_SECRET>> --data "grant_type=client_credentials" https://apex- solutions.oracle.cloud/<<schema>>/oauth/token Original curl -i -k --user VER1nRDyNuNAZBJH4-5C_A..:_JVBthiRn_WNXU0r9DstuA.. --data "grant_type=client_credentials" https://nse3rcyay0caxuo-devel.adb.eu-frankfurt- 1.oraclecloudapps.com/ords/apex_day/oauth/token
  8. Obmedzovanie konzumenta - VPD 19 BEGIN DBMS_RLS.ADD_POLICY( object_schema => 'APEX_DAY',

    object_name => 'EMP', policy_name => 'NAZOV_POLICY', function_schema => 'APEX_DAY', policy_function => 'my_security_policy', sec_relevant_cols => 'SAL,COMM' ); END; CREATE OR REPLACE FUNCTION apex_day.my_security_policy(object_schema IN VARCHAR2, object_name VARCHAR2) RETURN VARCHAR2 AS l_cnt number; BEGIN -- Tu môžete pridať logiku pre vytvorenie bezpečnostných pravidiel SELECT count(*) into l_cnt FROM user_ords_clients where name = 'SPION' and client_id = SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER'); RETURN l_cnt ||'= 0'; END; Obmezenie na zobrazovanie hodnot v stlpci SAL a COMM
  9. Obmedzovanie konzumenta - VPD 21 Špecifický Prístup: Môžete definovať pravidlá,

    ktoré obmedzujú prístup k dátam na základe atribútov riadku, používateľských práv, alebo iných kontextových informácií… Dynamické Pravidlá: Pravidlá môžu byť dynamicky menené na základe meniaceho sa kontextu, bez potreby zmeny samotného SQL dotazu. Vysoká Flexibilita: VPD politiky môžete použiť na tabuľky, pohľady alebo synonýma