{"id":14692,"date":"2020-09-08T12:40:32","date_gmt":"2020-09-08T10:40:32","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/"},"modified":"2020-09-08T12:40:32","modified_gmt":"2020-09-08T10:40:32","slug":"oracle-rest-data-services-create-web-services","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/","title":{"rendered":"Oracle REST Data Services &#8211; Create Web Services"},"content":{"rendered":"<p>In my previous blog <a href=\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-installation-and-configuration\/\">Oracle REST Data Services &#8211; Installation and Configuration<\/a> :<\/p>\n<ul>\n<li>We have installed ORDS in standalone mode.<\/li>\n<li>Configured ORDS to be administer by SQL Developer<\/li>\n<\/ul>\n<p>In this blog, we will explain how to create simple RESTful Web Services using PL\/SQL and a browser Rest Client..<\/p>\n<p>My sources are :<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-rest-data-services\/20.2\/aelig\/installing-REST-data-services.html#GUID-A16BCCA2-8081-4062-A635-9F7C36FC394F\"><em>Oracle REST Data Services documentation.<\/em><\/a><\/li>\n<li>\u00a0<a href=\"https:\/\/www.thatjeffsmith.com\/oracle-rest-data-services-ords\/\"><em>Thatjeffsmith<\/em>.<\/a><\/li>\n<li><a href=\"https:\/\/oracle-base.com\/articles\/misc\/oracle-rest-data-services-ords-create-basic-rest-web-services-using-plsql\"><em>oracle-base<\/em>.<\/a><\/li>\n<\/ul>\n<p>First, let&#8217;s try to REST the schema\/tables &#8220;HR\/EMPLOYEES&#8221; using the <strong>Auto REST feature<\/strong>.<\/p>\n<p>Auto REST feature allows to interact with schema\/tables without writing any code.<\/p>\n<p>The first step is to enable the REST Services for the schema HR :<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-43146\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png\" alt=\"\" width=\"292\" height=\"300\" \/><\/a><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-43147\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services1.png\" alt=\"\" width=\"300\" height=\"226\" \/><\/a><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-43149\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services2.png\" alt=\"\" width=\"300\" height=\"226\" \/><\/a><\/p>\n<p>In a productive mode, for security reason, &#8220;<em>Schema alias<\/em>&#8221; must be changed and &#8220;<em>Authentication required<\/em>&#8221; must be checked.<\/p>\n<p>Let&#8217;s see the content of SQL code generated (taken from the <em>SQL<\/em> tab), you can execute this piece of code instead using graphical interface :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">DECLARE\n  PRAGMA AUTONOMOUS_TRANSACTION;\nBEGIN\n\n    ORDS.ENABLE_SCHEMA(p_enabled =&gt; TRUE,\n                       p_schema =&gt; 'HR',\n                       p_url_mapping_type =&gt; 'BASE_PATH',\n                       p_url_mapping_pattern =&gt; 'hr',\n                       p_auto_rest_auth =&gt; FALSE);\n\n    commit;\n\nEND;<\/pre>\n<p>The second step is to enable the REST for Table Employees :<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-43160\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services4.png\" alt=\"\" width=\"286\" height=\"300\" \/><\/a><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-43161\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services5.png\" alt=\"\" width=\"300\" height=\"225\" \/><\/a><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-43162\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services6.png\" alt=\"\" width=\"300\" height=\"227\" \/><\/a><\/p>\n<p>The SQL code related is :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">DECLARE\n  PRAGMA AUTONOMOUS_TRANSACTION;\nBEGIN\n\n    ORDS.ENABLE_OBJECT(p_enabled =&gt; TRUE,\n                       p_schema =&gt; 'HR',\n                       p_object =&gt; 'EMPLOYEES',\n                       p_object_type =&gt; 'TABLE',\n                       p_object_alias =&gt; 'employees',\n                       p_auto_rest_auth =&gt; FALSE);\n\n    commit;\n\nEND;<\/pre>\n<p>Now let&#8217;s try to access the EMPLOYEES table via \/ords\/hr\/employees :<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/GET_EMPLOYEES1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-43169 size-full\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/GET_EMPLOYEES1.png\" alt=\"\" width=\"531\" height=\"973\" \/><\/a><\/p>\n<p>Let&#8217;s just explain how it works :<\/p>\n<ol>\n<li>We do GET on employees table, ORDS will find the appropriate database workload (here the SQL command : &#8220;SELECT * FROM EMPLOYEES&#8221;).<\/li>\n<li>ORDS return the output as formatted JSON (see the output above).<\/li>\n<\/ol>\n<p>Let&#8217;s try now to create RESTful Web Services using PL\/SQL:<\/p>\n<p>Let&#8217;s create a REST Web Services using the GET method (Read\/SELECT):<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">BEGIN\n  ORDS.define_service(\n    p_module_name    =&gt; 'rest-v1',\n    p_base_path      =&gt; 'rest-v1\/',\n    p_pattern        =&gt; 'countries\/',\n    p_method         =&gt; 'GET',\n    p_source_type    =&gt; ORDS.source_type_collection_feed,\n    p_source         =&gt; 'SELECT * FROM countries',\n    p_items_per_page =&gt; 0);\n\n  COMMIT;\nEND;\n\/\n<\/pre>\n<p>Now let&#8217;s try to access the COUNTRIES table via \/ords\/hr\/rest-v1\/countries:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/GET_COUNTRIES.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-43176 size-full\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/GET_COUNTRIES.png\" alt=\"\" width=\"567\" height=\"942\" \/><\/a><\/p>\n<p>Let&#8217;s check the content of USER_ORDS_% views :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT id, name, uri_prefix\nFROM   user_ords_modules\nORDER BY name;\n\n        ID NAME      URI_PREFIX                                                                                                                                                                                                                                                     \n---------- ---------------------\n     10060 rest-v1   \/rest-v1\/                                                                                                                                                                                                                                                      \n\n\nSELECT id, module_id, uri_template\nFROM   user_ords_templates\nORDER BY module_id;\n        ID  MODULE_ID URI_TEMPLATE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            \n---------- ---------- ------------\n     10061      10060 countries\/                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              \n\n\n\nSELECT id, template_id, source_type, method, source\nFROM   user_ords_handlers\nORDER BY id;\n\n        ID TEMPLATE_ID SOURCE_TYPE          METHOD     SOURCE                                                                          \n---------- ----------- ---------------------------------------------------------\n     10062       10061 json\/collection      GET        SELECT * FROM countries<\/pre>\n<p>Now let&#8217;s create a POST Web Services (Create\/INSERT):<\/p>\n<p>First create a PL\/SQL procedure to create new rows :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">CREATE OR REPLACE PROCEDURE INS_EMP (\n  p_employee_id      IN  employees.employee_id%TYPE,\n  p_first_name       IN  employees.first_name%TYPE,\n  p_last_name        IN  employees.last_name%TYPE,\n  p_email            IN  employees.email%TYPE,\n  p_phone_number     IN  employees.phone_number%TYPE,\n  p_hire_date        IN  VARCHAR2,\n  p_job_id           IN  employees.job_id%TYPE,\n  p_salary           IN  employees.salary%TYPE,\n  p_commission_pct   IN  employees.commission_pct%TYPE,\n  p_manager_id       IN  employees.manager_id%TYPE,\n  p_department_id    IN  employees.department_id%TYPE\n)\nAS\nBEGIN\n  INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, HIRE_DATE, job_id, salary, commission_pct, manager_id, department_id)\n  VALUES (p_employee_id, p_first_name, p_last_name, p_email, p_phone_number, TO_DATE(p_hire_date, 'YYYY-MM-DD'), p_job_id, p_salary, p_commission_pct, p_manager_id, p_department_id);\nEXCEPTION\n  WHEN OTHERS THEN\n    HTP.print(SQLERRM);\nEND;\n\/<\/pre>\n<p>The next step is to create the web service with a POST handler calling the stored procedure, passing the the parameters needed by the PL\/SQL procedure :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">BEGIN\n  ORDS.define_module(\n    p_module_name    =&gt; 'rest-v4',\n    p_base_path      =&gt; 'rest-v4\/',\n    p_items_per_page =&gt; 0);\n  \n  ORDS.define_template(\n   p_module_name    =&gt; 'rest-v4',\n   p_pattern        =&gt; 'employees\/');\n\n  ORDS.define_handler(\n    p_module_name    =&gt; 'rest-v4',\n    p_pattern        =&gt; 'employees\/',\n    p_method         =&gt; 'POST',\n    p_source_type    =&gt; ORDS.source_type_plsql,\n    p_source         =&gt; 'BEGIN\n                           INS_EMP(p_employee_id      =&gt;  :employee_id,\n                                           p_first_name       =&gt;  :first_name,\n                                           p_last_name        =&gt;  :last_name,\n                                           p_email            =&gt;  :email,\n                                           p_phone_number     =&gt;  :phone_number,\n                                           p_hire_date        =&gt;  :hire_date,\n                                           p_job_id           =&gt;  :job_id,\n                                           p_salary           =&gt;  :salary,\n                                           p_commission_pct   =&gt;  :commission_pct,\n                                           p_manager_id       =&gt;  :manager_id,\n                                           p_department_id    =&gt;  :department_id);\n                         END;',\n    p_items_per_page =&gt; 0);\n\n  COMMIT;\nEND;<\/pre>\n<p>We have to use a Rest Client to pass the parameters expected by the POST method (<em>Advanced Rest Client<\/em> extension for Chrome or\u00a0 <em>RestClient <\/em>plugin for Firefox).<\/p>\n<p>The web service now can be called using :<\/p>\n<ul>\n<li>The URL :\u00a0 http:\/\/192.168.1.49:8080\/ords\/hr\/rest-v4\/employees\/<\/li>\n<li>Method : POST<\/li>\n<li>Headers : Content-Type : application\/json<\/li>\n<li>Body\u00a0 &#8211; remember the web server send JSON format : {&#8220;employee_id&#8221;:9998,&#8221;first_name&#8221;:&#8221;LAZHAR&#8221;,&#8221;last_name&#8221;:&#8221;FELAHI&#8221;,&#8221;email&#8221;:&#8221;LAZOO&#8221;,&#8221;phone_number&#8221;:&#8221;777&#8243;,&#8221;hire_date&#8221;:&#8221;2020-01-01&#8243;,&#8221;job_id&#8221;:&#8221;IT_PROG&#8221;,&#8221;salary&#8221;:5000,&#8221;commission_pct&#8221;:null,&#8221;manager_id&#8221;:201,&#8221;department_id&#8221;:10}<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RESTClient1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-43184 size-full\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RESTClient1.png\" alt=\"\" width=\"1173\" height=\"651\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>The goal of this POST method is to create the new employee_id &#8220;9998&#8221; into the table EMPLOYEES.<\/p>\n<p>Let&#8217;s check if the employee exist before to execute the POST method :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">select * from employees where employee_id = '9998';\nno rows selected<\/pre>\n<p>Let&#8217;s execute the POST method by clicking on the SEND Button from the REST Client :<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RESTClient2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-43187 size-full\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RESTClient2.png\" alt=\"\" width=\"1196\" height=\"735\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RESTClient3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-43188 size-full\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/RESTClient3.png\" alt=\"\" width=\"1186\" height=\"788\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Check the POST method execution is successful (Green Button with message <em>200 OK<\/em>).<\/p>\n<p>Let&#8217;s check into the database if the new employee is created :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">select * from employees where employee_id = '9998';\n\nEMPLOYEE_ID FIRST_NAME           LAST_NAME                 EMAIL                     PHONE_NUMBER         HIRE_DAT JOB_ID         SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID\n----------- -------------------- ------------------------- ------------------------- -------------------- -------- ---------- ---------- -------------- ---------- -------------\n       9998 LAZHAR               FELAHI                    LAZOO                     777                  01.01.20 IT_PROG          5000                       201            10\n\n<\/pre>\n<p>Conclusion :<\/p>\n<ul>\n<li>A lot of features exists with ORDS RESTful Web Services. In this blog, we just use standard HTTP calls via GET (Select\/Read) and POST (Create\/Insert) method interacting with the database.<\/li>\n<li>More complex RESTfull API can be written : Web Service with multiple value parameters, uploads files as\u00a0 BLOBS, create API interacting with your mobile phone.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my previous blog Oracle REST Data Services &#8211; Installation and Configuration : We have installed ORDS in standalone mode. Configured ORDS to be administer by SQL Developer In this blog, we will explain how to create simple RESTful Web Services using PL\/SQL and a browser Rest Client.. My sources are : Oracle REST Data [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":14693,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[],"type_dbi":[],"class_list":["post-14692","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Oracle REST Data Services - Create Web Services - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle REST Data Services - Create Web Services\" \/>\n<meta property=\"og:description\" content=\"In my previous blog Oracle REST Data Services &#8211; Installation and Configuration : We have installed ORDS in standalone mode. Configured ORDS to be administer by SQL Developer In this blog, we will explain how to create simple RESTful Web Services using PL\/SQL and a browser Rest Client.. My sources are : Oracle REST Data [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-08T10:40:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png\" \/>\n\t<meta property=\"og:image:width\" content=\"529\" \/>\n\t<meta property=\"og:image:height\" content=\"544\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Oracle REST Data Services &#8211; Create Web Services\",\"datePublished\":\"2020-09-08T10:40:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/\"},\"wordCount\":529,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png\",\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/\",\"name\":\"Oracle REST Data Services - Create Web Services - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png\",\"datePublished\":\"2020-09-08T10:40:32+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png\",\"width\":529,\"height\":544},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle REST Data Services &#8211; Create Web Services\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oracle REST Data Services - Create Web Services - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/","og_locale":"en_US","og_type":"article","og_title":"Oracle REST Data Services - Create Web Services","og_description":"In my previous blog Oracle REST Data Services &#8211; Installation and Configuration : We have installed ORDS in standalone mode. Configured ORDS to be administer by SQL Developer In this blog, we will explain how to create simple RESTful Web Services using PL\/SQL and a browser Rest Client.. My sources are : Oracle REST Data [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/","og_site_name":"dbi Blog","article_published_time":"2020-09-08T10:40:32+00:00","og_image":[{"width":529,"height":544,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png","type":"image\/png"}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Oracle REST Data Services &#8211; Create Web Services","datePublished":"2020-09-08T10:40:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/"},"wordCount":529,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png","articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/","url":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/","name":"Oracle REST Data Services - Create Web Services - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png","datePublished":"2020-09-08T10:40:32+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Enable-REST-Services.png","width":529,"height":544},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-rest-data-services-create-web-services\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Oracle REST Data Services &#8211; Create Web Services"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=14692"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14692\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/14693"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=14692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=14692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=14692"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=14692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}