begin ords.enable_schema; end; / begin ords.delete_module( p_module_name => 'emp.rest' ); ords.define_module( p_module_name => 'emp.rest', p_base_path => '/emp/' ); ords.define_template( p_module_name => 'emp.rest', p_pattern => 'hol/' ); ords.define_template( p_module_name => 'emp.rest', p_pattern => 'hol/:empno' ); ords.define_handler( p_module_name => 'emp.rest', p_pattern => 'hol/', p_method => 'GET', p_source_type => ords.source_type_collection_feed, p_source => 'select * from emp' ); ords.define_handler( p_module_name => 'emp.rest', p_pattern => 'hol/:empno', p_method => 'GET', p_source_type => ords.source_type_collection_item, p_source => 'select * from emp where empno = :empno' ); ords.define_handler( p_module_name => 'emp.rest', p_pattern => 'hol/', p_method => 'POST', p_source_type => ords.source_type_plsql, p_source => 'begin insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (:empno,:ename,:job,:mgr,:hiredate,:sal,:comm,:deptno);:forward_location:=:empno;:status_code:=201;end;' ); ords.define_handler( p_module_name => 'emp.rest', p_pattern => 'hol/:empno', p_method => 'PUT', p_source_type => ords.source_type_plsql, p_source => 'begin update emp set ename=:ename,job=:job,mgr=:mgr,hiredate=:hiredate,sal=:sal,comm=:comm,deptno=:deptno where empno=:empno; :forward_location:=:empno;:status_code:=200;end;' ); ords.define_handler( p_module_name => 'emp.rest', p_pattern => 'hol/:empno', p_method => 'DELETE', p_source_type => ords.source_type_plsql, p_source => 'begin delete emp where empno=:empno;:status_code:=200;end;' ); end; / begin ords.delete_module( p_module_name => 'dept.rest' ); ords.define_module( p_module_name => 'dept.rest', p_base_path => '/dept/' ); ords.define_template( p_module_name => 'dept.rest', p_pattern => 'hol/' ); ords.define_template( p_module_name => 'dept.rest', p_pattern => 'hol/:deptno' ); ords.define_handler( p_module_name => 'dept.rest', p_pattern => 'hol/', p_method => 'GET', p_source_type => ords.source_type_collection_feed, p_source => 'select * from dept' ); ords.define_handler( p_module_name => 'dept.rest', p_pattern => 'hol/:deptno', p_method => 'GET', p_source_type => ords.source_type_collection_item, p_source => 'select * from dept where deptno = :deptno' ); ords.define_handler( p_module_name => 'dept.rest', p_pattern => 'hol/', p_method => 'POST', p_source_type => ords.source_type_plsql, p_source => 'begin insert into dept (deptno, dname, loc) values (:deptno,:dname,:loc);:forward_location:=:deptno;:status_code:=201;end;' ); ords.define_handler( p_module_name => 'dept.rest', p_pattern => 'hol/:deptno', p_method => 'PUT', p_source_type => ords.source_type_plsql, p_source => 'begin update dept set dname=:dname,loc=:loc where deptno=:deptno; :forward_location:=:deptno;:status_code:=200;end;' ); ords.define_handler( p_module_name => 'dept.rest', p_pattern => 'hol/:deptno', p_method => 'DELETE', p_source_type => ords.source_type_plsql, p_source => 'begin delete dept where deptno=:deptno;:status_code:=200;end;' ); end; / begin ords.delete_module( p_module_name => 'empdeptv.rest' ); ords.define_module( p_module_name => 'empdeptv.rest', p_base_path => '/empdeptv/' ); ords.define_template( p_module_name => 'empdeptv.rest', p_pattern => 'hol/' ); ords.define_template( p_module_name => 'empdeptv.rest', p_pattern => 'hol/:empno' ); ords.define_handler( p_module_name => 'empdeptv.rest', p_pattern => 'hol/', p_method => 'GET', p_source_type => ords.source_type_collection_feed, p_source => 'select * from emp_dept_v' ); ords.define_handler( p_module_name => 'empdeptv.rest', p_pattern => 'hol/:empno', p_method => 'GET', p_source_type => ords.source_type_collection_item, p_source => 'select * from emp_dept_v where empno = :empno' ); end; /